ホームページ  >  記事  >  类库下载  >  PHP の浮動小数点計算の精度により、注文金額は 1 セント未満になることがよくあります。

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

高洛峰
高洛峰オリジナル
2016-10-10 11:24:151328ブラウズ

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 セント未満になることがよくあります。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

関連記事

続きを見る