4

注文合計を計算するスクリプトを作成しています。価格を変更できる特定の変数があるため、長桁の小数が発生します。

toFixed()これらの数値を四捨五入して常に同じ結果を得るのに十分正確ですか?

編集:私が思いついた解決策は、これを使用することです:

Number.prototype.toCurrency = function(){
    return Math.round(this*100)/100;
}

これは一貫性のために十分ですか?

4

1 に答える 1

2

toFixedブラウザ間で一貫して動作しないため、これには使用しないでください。

Javascript の数値はすべて倍精度浮動小数点数です。浮動小数点数は定義上、正確ではないため、数値表現自体は常に正確な結果を得るほど正確ではありません。

Javascript で予測可能な結果が必要な場合は、数値の精度制限を念頭に置いて、数値を正しく丸めることができる十分なマージンを常に確保する必要があります。

于 2012-09-01T21:11:11.763 に答える