2011-12-09 8 views
1

可能性の重複:
Is JavaScript's Math broken?javascriptのラウンドの問題

私はJavaScriptでいくつかの問題をしました。

私はこれを行う場合は、次の

警告(6.000 * 1.050)。

私は6.3を期待したが、私は6.30000001

誰も私を助けることができますを取得しますか?これがなぜ起こるのか説明してください。

+1

における方法toFixed()簡単な使用をすることができます。詳細は、「各コンピュータ科学者が浮動小数点演算について知っておくべきこと」(http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html)を参照してください。 –

答えて

1

あなただけのダウン浮動小数点数が表現され、JavaScriptに限定されるものではなく、どのようにのJavaScript

alert(parseFloat(6.000 * 1.050).toFixed(1)); 
+0

thx、これは私のために素晴らしい作品! – Ruutert

0

これらは、floatと呼ばれ、時には不正確です。

http://en.wikipedia.org/wiki/Floating_point#Accuracy_proble

+0

大丈夫ですが、これをどのように解決できますか? – Ruutert

+1

@Ruutertあなたの質問は重複しています。解決方法と説明については、質問の下のリンクを参照してください。 – kapa

+0

oeps。私は申し訳ありません – Ruutert

0

標準的な問題。小数は無限の精度で一般に格納することはできないため、ほとんどのプログラミング言語は、それらを近似し、丸められたバージョンを示すデータ型を持っています。問題は、乗算または減算によって不正確さが発生する可能性があることです。

最後に、おそらくラウンドする必要があります。ここで