在Java中加倍减法

时间:2014-12-14 15:23:38

标签: java math double bigdecimal

我试图在Java中使用与熵和信息增益相关的一些微积分,我使用如下公式:info_gain = infogain - nr1 / nr2 * nr3。

nr1,nr2,nr3和infogain是双打。

问题是nr1 / nr2 * nr3的结果是corect。但是当我做减法时,我会得到一些难看的结果。

例如,nr1 / nr2 * nr3为0.574716,并且infogain的初始值为0.575306。 当我做减法时,我得到0.000589。 这不正确或者不应该返回(我在纸上做了微积分)。

我尝试使用MathContext.DECIMAL64和divide(nr,10,RoundingMode.HALF_UP)来使用BigDecimal。

那么,是否有任何可能从0.001以上得到结果? (或类似的东西,但不是0.000589)。

1 个答案:

答案 0 :(得分:2)

嗯,0.575306 - 0.574716实际上是0.00059。

enter image description here