意外的结果因为浮动减法变为-0.0和+0.0

时间:2015-12-28 20:33:55

标签: c floating-point

在下面的代码中,当我输入0.41输入时,我得到的结果为4,这是预期的,但当我输入输入为0.15时,我得到的结果为{{1}但是它应该是3

我知道原因是因为我的第一个2条件没有变成 true ,这与-0.0和+0.0有关。我无法理解这一切是如何发生的。输入结果为if0.41

0.15

1 个答案:

答案 0 :(得分:1)

计算出便士时,你的增量count失败了。

例如:

    } else {
        f1 = f1 - 0.01;
        count++;   // count pennies
    }