※ ChatGPTを利用し、要約された質問です(原文:javaのdoubleでの計算による誤差)
javaのdoubleでの計算による誤差
このQ&Aのポイント
javaのdoubleを使った計算で、正確な値が得られないことがあります。特に小数点の計算で誤差が生じることがあります。
この問題は、コンピュータが浮動小数点数を2進数で表現するために起こります。2進数表現では、一部の小数を正確に表すことができません。
そのため、double型の変数を使った足し算や割り算の結果には微小な誤差が生じることがあります。これは計算の順序や丸め誤差などの要素も関与しています。
宜しくお願いします。
割り算でなくても、足し算の小数点計算で誤差がでます。
public class keisan {
public static void main(String[] args) {
double a1 = 12.3;
double b1 = 45.6;
System.out.println(a1 + b1);
}
}
結果が
57.900000000000006
となります。
きっちり57.9とならないのはなぜでしょう?
他の数字でも数が小数点以下でブレます。
原因に何が考えられるでしょうか?
OSはWindowsXP pro ver.2002 SP3 32bit
jdk 1.6.0_17
eclipseは
Eclipse Platform
Version: 3.5.2.R35x_v20100210-0800-9hEiFzmFst-TiEn9hNYgDWg1XN8ulH_JvCNGB
Build id: M20100211-1343
を使っています。
お礼
2進数と10進数の誤差ですね。 ありがとうございました。