大家好,
Double d = 1.000000000000000000000000000000001;
System.out.println(d);
上面的代码打印1.0但我想要存储整个值。 期望的输出为1.000000000000000000000000000000001
我担心的是如何将这个值存储为double? 有没有办法增加双倍可以存储的小数? 请指导我
答案 0 :(得分:4)
您需要使用BigDecimal。
示例:
BigDecimal test = new BigDecimal("1.000000000000000000000000000000001");
System.out.println(test);
使用double
无法表示相同的原因是double
有64位。
答案 1 :(得分:0)
http://en.wikipedia.org/wiki/Double-precision_floating-point_format
如上所述,链接double有53个十进制位,总共64位,其中可存储16位小数