当55.8/9.3 = 6时,为什么fmod(55.8,9.3)返回9.3?

awm*_*awm 1 floating-point number-theory

我正在尝试使用fmod函数,但我没有得到我期待的结果.

Mar*_*som 6

由于浮点不精确,它实际上返回9.299999999999994.55.8或9.3都不能精确地表示为基数2浮点数.

这是一个非常普遍的问题.一个很好的参考是每个计算机科学家应该知道的浮点运算.

  • @Cubic,`fmod`返回分区的剩余部分.在这种情况下,除非55.8向下舍入或9.3向上舍入,因此除法返回5而不是6.我确定这个fmod的预期结果是0.0. (2认同)