-2

次の操作では、間違った結果が得られます。

$First      = '45.4000';
$Second     = '4.6800000000';
$Third      = '50.00';

echo ( $First + $Second ) - $Third;

出力: 0.079999999999998

期待される出力: 0.08

number_format/sprintf ...などを使用せずに、正しい結果を得る方法を探しています。

この問題は私のコードの複数の場所に影響を与えており、すべてを調べてフォーマットする必要があるため、面倒です。

4

2 に答える 2

-1

precision「応急処置」として、 php.ini ファイルの設定を変更します。ドキュメンテーション

デフォルトでは 14 であり、ほとんどの場合、必要以上に多くなります (これだけの精度が必要な場合は、専用の数学ライブラリを使用することになります)。number_format4 などに変更すると、結果はその長さに丸められます。必要に応じて、ケースバイケースでこれをオーバーライドできることに注意してください。

于 2013-10-31T11:31:00.903 に答える
-1

これを試して

$First      = '45.4000';
$Second     = '4.6800000000';
$Third      = '50.00';

$sk = ( $First + $Second ) - $Third;

echo round($sk,4);

?>
于 2013-10-31T11:31:56.197 に答える