English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

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

PHPに関するさらに詳しい内容に興味を持たれる読者は、以下の本サイトの特集を参照してください:《PHP数学演算技術のまとめ》、《PHP演算と演算子の使い方のまとめ》、《php文字列(string)の使い方のまとめ》、《PHP配列(Array)の操作技術大全》、《PHP常用の巡回アルゴリズムと技術のまとめ》、《PHPデータ構造とアルゴリズムのチュートリアル》、《phpプログラムデザインのアルゴリズムのまとめ》、《php正規表現の使い方のまとめ》および《php一般的なデータベース操作技術のまとめ》

この記事の内容が皆様のPHPプログラムデザインに役立つことを願っています。

声明:この記事の内容はインターネットから取得され、著作権者に帰属します。インターネットユーザーが自発的に貢献し、自己でアップロードしたものであり、このサイトは所有権を持ちません。また、人工編集は行われていません。著作権侵害が疑われる場合は、以下のメールアドレスにご連絡ください:notice#oldtoolbag.com(メールを送信する際には、#を@に置き換えてください。報告を行い、関連する証拠を提供してください。一旦確認がとりついたら、このサイトは侵害された内容をすぐに削除します。)

おすすめ