PHP浮動小数点精度の問題

藏色散人
リリース: 2023-04-07 20:04:02
転載
2873 人が閲覧しました

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 サイトの他の関連記事を参照してください。

関連ラベル:
php
ソース:segmentfault.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート