rem
(rem number divisor)
number を divisor で切り捨て除算 (truncated division) したときの剰余を返します。そのため 0 でない結果は常に被除数の符号を取ります。これは truncate の対になる関数です。結果を除数の符号に合わせたい場合は代わりに mod を使用してください。
結果が 0 の浮動小数点数になる場合は 0.0 であり、-0.0 になるのは被除数が -0.0 かつ除数が正のときだけです。rem は truncate の第 2 返り値、すなわち商を厳密な整数とした number - divisor*quotient なので、0 の符号は被除数から複写されるのではなく、この減算の結果として決まります。
浮動小数点数の結果は、どの大きさでも厳密な剰余です。number - divisor*quotient は浮動小数点で評価した値ではなく厳密演算での値なので、被除数が 2^53 を超えていても真の剰余が得られます。除数が無限大のとき商は 0 になるため、結果は被除数そのものになります。truncate に商がないところでは rem にも剰余がなく、truncate と同じエラーを通知します: 除数が 0 なら正確な 0 でも浮動小数点数の 0 でも division-by-zero ((rem 7.5 0)、(rem 7.5 0.0)) で、被除数が NaN や無限大のとき (または除数が NaN のとき) はそれより先に非有限値の丸めを報告します。