有人可以帮我解释以下内容吗?您可以在Google中输入相同的数字,并获得与我在代码中获得的结果相同的结果...。

1089.80 % 0.04 = 0
1089.84 % 0.04 = 0.04 - Surely this is wrong? 0.04 goes into 1089.84 with no remainder.
1089.88 % 0.04 = 0
1089.92 % 0.04 = 0

对于其他看似正确的数字,也会出现类似的行为。

提前致谢!

最佳答案

您正在查看四舍五入的值。在内部,该数字不是1089.84,而是类似1089.84000026。

如果要“正确”的值,请将两边都乘以100,再加上0.5,然后将它们(整数)相乘,然后取整数mod,然后将结果转换回float。

关于iphone - objective-c -iOS-奇怪的fmod()行为,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6872995/

10-10 14:20