我正在编写一个带有浮点数的示例程序,但突然发生了一些奇怪的事情。如果有人能阐明为什么我会在我的程序中面临这种行为,我将不胜感激。
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 的意外结果,这是为什么?任何输入都非常感谢。
谢谢