計算の途中で0.14といれると変な答えが・・・

[上に] [前に] [次に]
しろうとA 2000/06/09(金) 20:58:03
JavaScriptで、色々と計算させて試していたところ、
小数点以下の最後の2桁が「14」になったとき(例えば「0.14」)、
おかしな表示になってしまいます。
同じ経験をされた方はいらっしゃらないでしょうか。

Fishbone [HomePage] 2000/06/09(金) 23:15:46
僕は、Math.atanを使って問題が生じた事はありますが、
0.14という特定の数字で問題を生じたことはないですね。
まずはその問題のスクリプトを見て見ない事には
わからないと思いますが・・・

sadahiro 2000/06/10(土) 11:49:48
例えば仮に、0.139999999999978 や 0.140000000000001
というような具合でしたらやむをえないことです。
わたしは文字列操作で小数点第何位以下を切り落としていますが。
どうおかしくなった(と思っている)のかが問題で、
それが伝わらないとなんとも…。どういう現象が起こったのでしょう?

しろうとA 2000/06/12(月) 09:51:00
お返事ありがとうございます。
現象としては、例えば、
c = 0.14
d = c * 10
といったような場合に、dの値が、
sadahiroさんのおっしゃるように、
0.14000000001のように表示されました。

小数点以下を切り捨てるなどしないとだめなのでしょうか。

Fuji.♪ [E-Mail] [HomePage] 2000/06/12(月) 09:54:03
0.14に限らず、浮動小数点演算では常に付きまとう問題です。 (^^;
ある程度で丸めて切り落とすなどする必要があるでしょう。

しろうとA 2000/06/12(月) 11:29:18
[[解決]]
なるほど、浮動小数点演算では、0.14に限らず発生する可能性の
ある問題、ということですね。
小数点以下をある程度区切って切り落とすようにしたいと
思います。

あいまいな質問にも関わらず、親切にお答えくださった皆様、
ありがとうございました。

[上に] [前に] [次に]