0

大家好,

Double d = 1.000000000000000000000000000000001;
        System.out.println(d);

上面的代码打印 1.0 但我希望 d 存储整个值。期望的输出是 1.0000000000000000000000000000000001

我关心的是如何将此值存储为双倍?有没有办法增加双精度可以存储的小数?请指导我

4

2 回答 2

4

您需要使用BigDecimal

例子:

BigDecimal test = new BigDecimal("1.000000000000000000000000000000001");
System.out.println(test);

不能用 a 表示的原因double是它double有 64 位。

于 2012-06-19T05:47:27.717 回答
0

http://en.wikipedia.org/wiki/Double-precision_floating-point_format

根据上面的链接 double 总共有 53 个小数位 64,其中可以存储 16 个小数位

于 2012-06-19T06:41:33.770 回答