ホームページ  >  記事  >  バックエンド開発  >  PHP浮動小数点精度の問題

PHP浮動小数点精度の問題

藏色散人
藏色散人転載
2019-11-18 14:31:232853ブラウズ

php - */ を使用して浮動小数点数を計算すると、次のような不正確な計算結果による問題が発生する可能性があります。

<?php
    echo intval(0.58 * 100); //输出57
?>

解決策

<?php
    echo bcmul(0.58, 100); //输出58
?>

推奨: "PHP チュートリアル"

#● PHP は、この問題を処理するための BC 高精度関数ライブラリを提供します

● bcadd — 2 つの高精度数値を加算します

● bcsub — 2 つの高精度数値の減算

##● bcmul — 2 つの高精度数値の乗算

##● bcdiv — 2 つの高精度数値の除算

● bccomp — 比較2 つの高精度数値、-1、0、1 を返します

#● bcmod — 高精度数値の余りを求めます

##● bcpow — 高精度数値のべき乗を求めます

● bcpowmod - 高精度の数値の累乗を求め、数値理論でよく使用される法を求めます。

##● bcscale - 「scale=」に相当するデフォルトの小数点以下の桁数を設定します。 Linux では bc

● bcsqrt — 高精度の数値の平方根を求める

以上がPHP浮動小数点精度の問題の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はsegmentfault.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。