PHP浮点数取模不起作用

18

我写了一个函数,如果需要的话可以给数字添加逗号和零,但是我在模数函数上卡住了。根据我的PHP代码:

float(877.5) % 1 == 0 //true

在计算机中,877.5 % 1的结果应该为0.5,这是因为它表示计算877.5除以1所得到的余数。


2
取模运算符的操作数在处理之前会被转换为整数(通过去除小数部分)。对于浮点数取模,请参见fmod()函数。参考链接。谢谢询问。 - Accountant م
2个回答

23

它提醒你需要使用的是fmod函数,

fmod函数用于计算参数的浮点数余数(模)。

echo fmod(877.5, 1); // 0.5

3
% 和 fmod 之间的区别是什么?难道是 % 不适用于浮点数吗? - Liftoff
在 Google Chrome 的检查器中,如果我输入 33.3%1,则会返回浮点数 0.3。 - Shannon Hochkins
@ShannonHochkins - Web控制台中的计算由JavaScript提供支持,而不是PHP。 如果您在JavaScript和PHP中运行(9.5%6),JavaScript将给出答案3.5,而PHP将给出答案3。 如果您希望从PHP获得3.5,则需要询问:fmod(9.5, 6) - Rounin

1
不,取模运算符告诉你除法的余数。任何数除以1都没有余数,所以结果是0。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接