大家好,
Double d = 1.000000000000000000000000000000001;
System.out.println(d);
上面的代码打印 1.0 但我想存储整个值。 期望的输出是 1.000000000000000000000000000000001
我关心的是如何将这个值存储成双倍? 有什么办法可以增加 double 可以存储的小数位数吗? 请指导我
你需要使用BigDecimal.
例子:
BigDecimal test = new BigDecimal("1.000000000000000000000000000000001");
System.out.println(test);
不能用
double
表示的原因是 double
有 64 位。
http://en.wikipedia.org/wiki/Double-precision_floating-point_format
按照上面的链接double共有53个小数位64位,其中可以存储16位小数
你可以有一个双倍,另一个,然后将主双倍乘以它本身的小数位数,然后将另一个双倍加到新数字上,除以所需的小数位数,然后打印出来
Double b = 1.000000000000000
Double ab = 0.00001
System.out.println (b × 1000000000000000 + ab × 100000 ÷ 100000000000000000000)
我可能算错了,但这就是我的想法。