取模的结果是“除零”;错误


Modulo results in "Division by zero" error

我使用模运算符,如下所示,但是当我运行它报告Division by zero错误与分配给$new。我该如何解决这个问题?

$per = 0.2;
$a = 20;
$new = $a % $per;

在您的示例中,$per是一个浮点数(0.2)。根据PHP手册,模运算符只接受两个整数操作数:

模的操作数在处理前被转换为整数(通过去掉小数点部分)。浮点模请参见fmod()

由于运算符只接受整数操作数,因此值为0.2的$per被转换为0,从而产生错误。根据手册中的建议,您可以使用fmod作为替代方案:

$new = fmod($a, $per);