一部の会計スクリプトを PHP 8.1 にアップグレードしましたが、浮動小数点数が正しくありません。
私はいくつかのトランザクションの借方/貸方をループし、残高は0ですが、最後にゼロと比較しようとすると、== 0および=== 0では機能しません
いくつかのデバッグの後、次のことがわかりました。
<?php
var_dump(1097.5 - 835.7);
float(261.79999999999995) を返します
PHP 7 の同じ行は float(261.8) を返します。
これは、このサンドボックスを使用して簡単にテストできます
だから、何百ものスクリプトのすべての段階で移動して切り上げることなく、以前と同じフローティング結果が得られるように、PHP 構成で変更できる設定があるのではないかと考えていました。