我需要找到浮点数的模数。
为此,我正在使用
NSLog(@"value >> %f",fmodf(2.0f, 0.1f));
此输出应为0.0f
但我得到的输出值>> 0.1
如何?
答案 0 :(得分:4)
编译器将源文本0.1f
转换为最接近的可表示值。最接近.1的IEEE-754 32位浮点值(iOS使用)为0.100000001490116119384765625。
您使用参数2和0.100000001490116119384765625评估fmodf
。从2减去后一个值的19倍后,残差为0.099999971687793731689453125,因此这是返回值。当它被舍入到几位数以便显示时,结果为“0.1”。