PHP の浮動小数点計算の精度により、注文金額は 1 セント未満になることがよくあります。

高洛峰
リリース: 2016-10-10 11:24:15
オリジナル
1375 人が閲覧しました

PHP の浮動小数点演算の精度により、注文金額が 1 セント未満になることがよくあります

最近、トラブルシューティングを行った後、WeChat を通じて支払われる注文が 1 セント未満になることがよくあります。 PHP の浮動小数点演算の精度によるものです

Brother Niao の Bolg の詳細な手順が原因です。 http://www.laruence.com/2013/03/26/2884.html,
小数を2進数で表すと、0.58は2進数の無限大の値になります

0.58的二进制表示基本上(52位)是: 0010100011110101110000101000111101011100001010001111
0.57的二进制表示基本上(52位)是: 0010001111010111000010100011110101110000101000111101
ログイン後にコピー

浮動小数点数(64ビット倍精度)に変換します

rreeerrree

解決策:

0.58 -> 0.57999999999999996
0.57 -> 0.56999999999999995
ログイン後にコピー

PHP の浮動小数点計算の精度により、注文金額は 1 セント未満になることがよくあります。

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