私はここでそれを読んだ:
整数以外のモジュラスは、予測できない結果をもたらします。
ただし、少し試してみたところ、かなり予測可能な結果が得られたようです。
function mod($a, $b) {
echo "$a % $b = " . ($a % $b) . '<br>';
}
mod(10.3, 4);
mod(10.3, 2);
mod(-5.1, 3);
// OUTPUT:
// 10.3 % 4 = 2
// 10.3 % 2 = 0
// -5.1 % 3 = -2
つまり、が最初double
に変換されるようです。integer
%
最初のオペランドが の場合の動作の定義はありますdouble
か?