ホームページ  >  記事  >  バックエンド開発  >  負の数を返す PHP 整数剰余の関連ソリューション_PHP チュートリアル

負の数を返す PHP 整数剰余の関連ソリューション_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:29:47886ブラウズ

PHP 言語は強力ですが、コードを作成する過程で、必ず問題が発生することがあります。以下では、PHP の整数剰余が負の数を返す場合の解決策を紹介します。

まず例を見てみましょう。

コードをコピーします コードは次のとおりです:

$res = 16244799483;
echo $res%9999999
//出力結果は-5069794、正しい結果は4801107であるはずです

実際、これは PHP のバグであると考えられます。最も重要なことは、PHP にはユーザーのタイプを判断するためのマシンが組み込まれているということです。

しかし、結局のところ、機械は、上記のように、判断が間違っている場合があります。そのため、現時点では、手動の介入が必要です。

そこで、PHP の整数の剰余が負の数を返す問題を解決するために、次のメソッドを使用することを考えました。

コードをコピーします コードは次のとおりです:
$res = floatval(16244799483);
var_dump($res % 9999999);


結果はまだ間違っていることがわかります - 5069794。

ただし、戻り値は int 型であることに注意してください。

PHP の整数の剰余が負の数を返す問題は次のように処理されます。

PHP の剰余はデフォルトでは整数です。

そして $res = 16244799483;

を定義すると

実際にはすでにオーバーフローしているため、float 型になるように強制的な型変換を追加する必要があります。

しかし、% のモジュロ計算は依然として整数に基づいているため、これでは十分ではありません。

したがって、fmod 関数が必要になります。これは float 型用です。

したがって、負の数を返す PHP 整数剰余に対する最終的な解決策は次のようになります:

コードをコピーします

コードは次のとおりです:

$res = floatval(16244799483); var_dump(fmod($res,9999999));

このようにして、PHP の整数の剰余が負の数を返す問題を解決します。:)

http://www.bkjia.com/PHPjc/770578.html

www.bkjia.com

tru​​ehttp://www.bkjia.com/PHPjc/770578.html技術記事 PHP 言語は強力ですが、コードを作成する過程で、必ずいくつかの問題に遭遇することがあります。以下では、PHP の整数取得について紹介します...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。