この記事では、PHP で大きな数の剰余 (浮動小数点数) を実装する方法を主に紹介し、PHP の算術演算に関連する操作スキルをサンプルの形式で分析します。この記事では、PHP での大きな数値 (浮動小数点数) の剰余を取るメソッドの実装について説明します。詳細は次のとおりです。
一般に、剰余演算を実行するときに最初に思いつくのは、除数が大きい値で % を超える場合です。 int の範囲の場合、残りは正確に機能しません。
phpの大きな数値(浮動小数点数)の剰余関数:
/** * php大数取余 * * @param int or float $bn 除数 * @param int $sn 被除数 * @return int 余数 */ //大数(浮点数)取余方法 function Kmod($bn, $sn) { return intval(fmod(floatval($bn), $sn)); }
テストコード:
//大数(浮点数)取余方法 function Kmod($bn, $sn) { return intval(fmod(floatval($bn), $sn)); } //整数取余方法 function mod($bn, $sn) { return $bn%$sn; } //最大的int整数 $bn = PHP_INT_MAX; $sn = 11; var_dump($bn); var_dump(Kmod($bn, $sn)); var_dump(mod($bn, $sn)); //给最大的int整数加1 $bn = PHP_INT_MAX + 1; var_dump($bn); var_dump(Kmod($bn, $sn)); var_dump(mod($bn, $sn));
実行結果:
int 2147483647 int 1 int 1 float 2147483648 int 2 int -2