java打印到文件削减数字的最后一位

标签 java digits

我尝试将值打印到一个文件中,但是当超过 4 位数字时我的结果被截断了:

import java.io.FileNotFoundException;
import java.math.BigInteger;

public class create_referencevalues {

    /**
     * @param args
     */
    public static void main(String[] args) {
        Long[] list = { 10L, 40L, 90L, 160L, 250L, 350L, 500L, 650L, 800L,
                1000L };

        try {
            java.io.PrintStream p = new java.io.PrintStream(
                    new java.io.BufferedOutputStream(
                            new java.io.FileOutputStream(new java.io.File(
                                    "C:/users/djdeejay/listall.csv"), false)));
            for (long i = 0; i < 1024; i++) {
                //p.print(Long.toBinaryString(i));
                Long sum1 = 0L;
                for (int j = 0; j < 10; j++) {
                    if (BigInteger.valueOf(i).testBit(j)) {
                        sum1 += (list[j]);
                    }
                }

                p.println( i + ";"+sum1);

            }

            p.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }

}

这是打印的最后 5 个值:

1018;3750
1019;3760
1020;3800
1021;3810
1022;3840
1023;3850

最后应该是:38500

我在这里想念什么???

最佳答案

println 没有问题。您的代码完全符合我的预期。考虑最后一行,您声称它不正确:

1023;3850

十进制的1023是二进制的1111111111。因此,当 i=1023 时,程序的内部循环将简单地计算 list 中所有数字的总和。这些数字加起来为 3850,这就是打印的内容。

关于java打印到文件削减数字的最后一位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18388919/

相关文章:

c# - 按字母顺序对字符串中的数字进行排序

java - 将大数分成单独的数字并存储它们

java - 普罗米修斯 : How to collect metrics for memory consumption of temporary processes?

java - 如何从字符串 "[ABC]"中删除[符号

python - 使用 sklearn 数字数据集预测数字 - 错误

c - 如何判断输入的字符是否为数字?

python - np.convolve 与 10**9 有什么问题?

java - Java中的整数溢出

java - 使用 TestNG 从 selenium 测试用例中的页面对象调用方法时如何修复 NullPointerException 错误?

java - 在 Java 中的 Apache Camel 中使用 TLS/SSL 显式使用 FTP 路由器到 HTTPS 进行安全连接