获取模数的fmodf问题

时间:2013-03-16 08:02:27

标签: iphone ios math floating-point fmodf

我需要找到浮点数的模数。

为此,我正在使用

NSLog(@"value >> %f",fmodf(2.0f, 0.1f));

此输出应为0.0f

但我得到的输出值>> 0.1

如何?

1 个答案:

答案 0 :(得分:4)

编译器将源文本0.1f转换为最接近的可表示值。最接近.1的IEEE-754 32位浮点值(iOS使用)为0.100000001490116119384765625。

您使用参数2和0.100000001490116119384765625评估fmodf。从2减去后一个值的19倍后,残差为0.099999971687793731689453125,因此这是返回值。当它被舍入到几位数以便显示时,结果为“0.1”。