1

PHPで以下のコードを検討してください

$a = 8425996523 * 121212713;
$b = sprintf('%.2f', $a);  
$mul = gmp_mul("8425996523", "121212713"); 

出力は

1.0213378982814E+18 
1021337898281396864.00 
1021337898281396899

実際の答えは1021337898281396899 です。したがって、 gmp_mulのようなライブラリを使用して大きな数を計算する必要があることは明らかです。

私の質問は、そのようなエラーを特定する方法ですか? つまり、PHP が次のような計算を行うとき

8425996523 * 121212713

、結果が正しくないことをどのように確認できますか?

私が見る 1 つの方法は、E をチェックし、そのような数値を強制的に変換するたびにエラーが発生すると想定することです。

4

1 に答える 1

0

使用する

$b = sprintf('%.2d', $a);

それ以外の

$b = sprintf('%.2f', $a);

違いを示すソース コードのスクリーンショットを次に示します。


ここに画像の説明を入力

于 2013-09-28T19:22:19.940 に答える