Math.pow将计算限制为一个小数点

时间:2016-08-10 10:38:39

标签: java api decimal bigdecimal

我正在尝试在我的java类中进行以下计算

Math.pow(0.0901 / 12 *(1 + 0.0901 / 12),356.966667)

我的结果是0.0。然而,预期结果是0.10844

1 个答案:

答案 0 :(得分:2)

我不太确定你的结果应该是0.10844。基数是这样的~0.00756,你把它提升到~357的正幂。这意味着对于如此大的功率,小数点后会有更多的零。这意味着你将有一个正值小于一个双倍可以存储的值,它将四舍五入为0.0。

使用BigDecimal,您将得到以下值:~7.08E-756用于计算,而最小正双值(Double.MIN_VALUE)是4.9E-324。这意味着0.0将是您的舍入值。