4

模除法只返回整数吗?我需要一个浮动回报。请参阅以下内容:

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

4 回答 4

8

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

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

于 2012-05-14T00:37:53.677 回答
4

请参阅手册

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

11.5 变成 11。

11 % 10 = 1 remainder **1**

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

于 2012-05-14T00:37:32.140 回答
1

引用文档页面

“模数的操作数在处理之前被转换为整数(通过去除小数部分)。”

于 2012-05-14T00:41:12.473 回答
0

有什么解决方法吗?

数学...

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

于 2012-05-14T00:41:15.550 回答