【发布时间】:2019-11-22 17:52:51
【问题描述】:
非常基础的问题,我正在尝试初始化一个值为 1.1 的 Big Decimal,当我打印它时,输出不完全是 1.1
BigDecimal bd1 = new BigDecimal(1.1);
System.out.println(bd1);
输出是
1.100000000000000088817841970012523233890533447265625
如果我使用“1.1”(作为字符串),或者如果我尝试打印 bd1.doubleValue(),它会起作用
有人可以解释一下这种行为吗?自动生成的那些额外的十进制数字是什么。
【问题讨论】:
-
非常重要:始终先检查 Javadoc。
BigDecimal(double)的 Javadoc 准确回答了您的问题。 docs.oracle.com/javase/8/docs/api/java/math/…
标签: java bigdecimal