模数导致"除以零"错误

Phu*_* Vo 2 php

我正在使用modulo运算符,如下所示,但是当我运行它时报告Division by zero错误并分配给$new.我怎样才能解决这个问题?

$per = 0.2;
$a = 20;
$new = $a % $per;
Run Code Online (Sandbox Code Playgroud)

Li3*_*357 8

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

模数的操作数在处理之前转换为整数(通过去除小数部分).对于浮点模,请参阅fmod().

由于运算符只接受整数操作数,因此$per将值0.2转换为0,从而产生错误.如手册中所述,您可以使用fmod替代方法:

$new = fmod($a, $per);
Run Code Online (Sandbox Code Playgroud)