PHP基礎編-PHPのBC MATHシリーズ数学関数

1502 ワード

一、よくある質問
PHPで計算すると精度に問題があることがよくありますが、2つの一般的な例を見てみましょう.
1.演算比較
次の式の結果は ではありません.

2.タイプ変換
次の式で出力される結果は201ではありません(目的の結果を出力するにはstringを回転してからintを回転する必要があります).

おかしいと思うかもしれませんが、これはPHPのバグではありません.鳥兄の2つの文章を深く理解したいなら、参考にしてください.
  • PHP浮動小数点数について知っておくべき(All'bogus'about the float in PHP)
  • PHP浮動小数点数の1つのよくある問題の解答
  • 二、BC MATH
    PHPによって提供されるBC MATH系列数学関数を用いて上記の問題を解決することができる.任意の精度の数学的計算に対して、BC MATHは、文字列で表される任意の大きさおよび精度の数値をサポートするバイナリ計算を提供し、最大2147483647−1(または0 x 7 FFFFFFF−1)である.
    以下,BC MATHが提供する関数を用いて上記の問題を解決する.
    1.演算比較
    bccomp-2つの任意の精度の数字を比較します.

    注意:2つの数が等しい場合は0を返し、左の数が右の数より大きい場合は1を返します.そうでない場合は-1を返します.
    2.タイプ変換
    bcmul-2つの任意の精度のデジタル乗算計算:

    注意:結果が文字列タイプであることを示します.
    BC MATHシリーズの数学関数を使用すると、不要なエラーを避けるためにミスを減らすことができます.詳細なパラメータや他の関数の使用を確認する必要がある場合は、PHPの公式ドキュメントを参照してください.http://php.net/manual/zh/book.bc.php
    本文は馬燕龍の個人ブログに先発して、分かち合うことを歓迎して、転載して出典を明記してください.馬燕龍個人ブログ:http://www.mayanlong.com馬燕龍個人微博:http://weibo.com/imayanlong馬燕龍Githubホームページ:https://github.com/yanlongma