English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
この記事では、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
PHPに関するさらに詳しい内容に興味を持たれる読者は、以下の本サイトの特集を参照してください:《PHP数学演算技術のまとめ》、《PHP演算と演算子の使い方のまとめ》、《php文字列(string)の使い方のまとめ》、《PHP配列(Array)の操作技術大全》、《PHP常用の巡回アルゴリズムと技術のまとめ》、《PHPデータ構造とアルゴリズムのチュートリアル》、《phpプログラムデザインのアルゴリズムのまとめ》、《php正規表現の使い方のまとめ》および《php一般的なデータベース操作技術のまとめ》
この記事の内容が皆様のPHPプログラムデザインに役立つことを願っています。
声明:この記事の内容はインターネットから取得され、著作権者に帰属します。インターネットユーザーが自発的に貢献し、自己でアップロードしたものであり、このサイトは所有権を持ちません。また、人工編集は行われていません。著作権侵害が疑われる場合は、以下のメールアドレスにご連絡ください:notice#oldtoolbag.com(メールを送信する際には、#を@に置き換えてください。報告を行い、関連する証拠を提供してください。一旦確認がとりついたら、このサイトは侵害された内容をすぐに削除します。)