JavaとCのfloatの違い
floatの足し算の結果が異なる
変数に0.1fを10回足すとCの場合は1.000000と出力されるがJavaでは1.0000001と出力される
なぜそうなるのか詳細は調べていない
環境
CPU:Pentium M
OS:Windows
Javaコンパイラ:1.6.0_11 javac
Cコンパイラ:gcc 3.3.3 (cygwin version)
#includeint main(void) { float f1 = 0.0f; int i; for(i = 0; i < 10; i++) f1 += 0.1f; printf("%f", f1); return 0; }
- Java言語
public class FloatTest { public static void main(String[] args) { float f1 = 0.0f; for(int i = 0; i < 10; i++) f1 += 0.1f; System.out.println(f1); } }