大家好,
Double d = 1.000000000000000000000000000000001;
System.out.println(d);
上面的代码打印 1.0 但我希望 d 存储整个值。期望的输出是 1.0000000000000000000000000000000001
我关心的是如何将此值存储为双倍?有没有办法增加双精度可以存储的小数?请指导我
您需要使用BigDecimal。
例子:
BigDecimal test = new BigDecimal("1.000000000000000000000000000000001");
System.out.println(test);
不能用 a 表示的原因double
是它double
有 64 位。
http://en.wikipedia.org/wiki/Double-precision_floating-point_format
根据上面的链接 double 总共有 53 个小数位 64,其中可以存储 16 个小数位