math.fmod总是euqls math.mod吗?

Ale*_*ack 4 lua

我试图通过以下代码找出math.fmod和math.mod之间的区别:

a={9.5 ,-9.5,-9.5,9.5}
b={-3.5, 3.5,-3.5,3.5}
for i=1,#a do
    if math.fmod(a[i],b[i])~=math.mod(a[i],b[i]) then
        print("yeah")
    end
end
Run Code Online (Sandbox Code Playgroud)

它永远不会打印“是”!我应该在数组a和b中放入什么才能看到“是”?

math.fmod()的文档说,它返回x除以y的余数,将余数四舍五入。

lhf*_*lhf 5

math.mod相同的功能math.fmod。实际上,math.mod仅存在与先前版本的兼容性。它没有在手册中列出。尝试math.modf而不是math.mod在您的代码中。

  • 但 modf 与 fmod 是完全不同的函数。根据文档: math.modf (x) 返回两个数字,x 的整数部分和 x 的小数部分。但是 math.fmod (x, y) 返回 x 除以 y 的余数,将商向零舍入。 (2认同)