如何输出带小数点后20位的Double?

时间:2012-06-19 05:46:17

标签: java double wrapper

大家好,

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

上面的代码打印1.0但我想要存储整个值。 期望的输出为1.000000000000000000000000000000001

我担心的是如何将这个值存储为double? 有没有办法增加双倍可以存储的小数? 请指导我

2 个答案:

答案 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位小数