Java新的BigDecimal生成另一个数字

时间:2019-05-22 13:08:24

标签: java bigdecimal

设置时,我使用的是BigDecimal数据类型

event.which

然后,我将其作为xml源返回,显示为

$.ui.keyCode

另一个号码

new BigDecimal(21.30);

返回

21.30000000000710522735760100185871124467578125

我想显示与创建时相同的小数位数。

1 个答案:

答案 0 :(得分:7)

  

此构造函数的结果可能有些不可预测。一   可能假设用Java编写new BigDecimal(0.1)会创建   BigDecimal恰好等于0.1(小数位数为1,小数位数为1),但实际上等于0.1000000000000000055511151231257827021181583404541015625。

     

这是因为0.1无法精确地表示为double(或就此而言,不能表示为任何有限长度的二进制分数)。因此,正在 in 传递给构造函数的值不完全等于0.1,   尽管出现。

如果您查看BigDecimal Java文档,您将发现必须使用带有String参数的构造函数才能达到所需的行为。