この記事では、主に PHP が高精度の計算関数を処理する方法について説明します。お役に立てれば幸いです。
方法 1:
PHP は、文字列形式
bcadd — 加算
bccomp — 比較
bcp — 位相除算
で記述される、任意のサイズと精度の数値をサポートする任意精度の数学計算用のバイナリ計算機 (Binary Calculator) を提供します。 bcmod — 剰余を求める
bcmul — 乗算
bcpow — べき乗
bcpowmod — 最初にべき乗してから剰余を求める
bcscale — すべての関数の小数点以下の桁精度を設定する
bcsqrt — 平方根を求める
bcsub — 減算
方法 2:
最近、モールで WeChat 経由で支払った注文の料金が 1 ペニー安くなることがよくありました。調査したところ、PHP の浮動小数点演算の精度が原因でした。 . ニアオ兄さんのボルグに詳しい説明があります。 http://www.laruence.com/2013/03/26/2884.html,
10 進数を 2 進数で表すと、0.58 は 2 進数では無限に長い値になります
0.58 の 2 進数表現は基本的に (52 ビット) です。 0010100011110101110000101000111101011100001010001111
0.57 のバイナリ表現は基本的に: 00100011110101110000101000111101011100001010 11101
浮動小数点数(64ビット倍精度)に変換
0.58 -> 0.57999999999999996
0.57 -> 0.5699999999999995
0.58*100 = 57.9 99999999 ( int)(0.58*100) = 57
解決策:
(int)((0.58*1000)/10) = 58
関連する推奨事項:
MySQL の一般的な日付と計算関数の例を説明PHP の確率計算関数PHP で関数の実行時間を計算する方法_PHP チュートリアル以上がPHP が高精度の計算関数を処理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。