模除返回一个整数


Modulus division returns an integer?

模除法只返回整数吗?我需要浮存值返回。请参阅以下内容:

var_dump(12 % 10); // returns 2, as expected
var_dump(11.5 % 10); // returns 1 instead of 1.5?

是的。 %运算符返回一个整数。

如果需要浮点结果,请改用 fmod() 函数。

请参阅手册。

模的操作数转换为整数(通过剥离 小数部分)处理前。

11.5 变为 11。

11 % 10 = 1 remainder **1**

您的解决方案:fmod() ,正如tom_yes_tom所建议的那样。

引用文档页面:

"模的操作数被转换为整数(通过剥离 小数部分)在处理之前。

有什么解决方法吗?

数学。。。

11.5 - floor(11.5 / 10) * 10 == 1.5