float を使ったサンプル プログラムを書いていたのですが、突然おかしなことが起こりました。私のプログラムからそのような行動に直面している理由について誰かが光を当てることができれば、本当に感謝しています。
package Programs;
public class FloatTest {
/**
* @param args
*/
public static void main(String[] args) {
float f1 = (float) 3.2;
float f2 = (float) 6.5;
if (f1 == 3.2) {
System.out.println(f1 + " same");
} else {
System.out.println(f1 + " different");
}
if (f2 == 6.5) {
System.out.println(f2 + " same");
} else {
System.out.println(f2 + " different");
}
}
}
出力:
3.2 different
6.5 same
f2 の値を変更していくつかのテストを行った後、f2 > 3.5 で予期しない結果が得られることに気付きました。ご意見をお待ちしております。
ありがとう