在评估检查Float是否小于特定值的条件时遇到一些奇怪的行为。
String s = "3700.7777";
System.out.println(Float.parseFloat(s));
if(Float.parseFloat(s) < 3700.7777){
System.out.println("Hi");
}
即使's'的值与条件中的值相同,该代码仍会打印“ Hi”。
由于我使用的是小于运算符,因此我的理解是,对于等于或大于3700.7777的任何值,该条件将失败并且不会显示“ Hi”。
最佳答案
将您的条件更改为:
if(Float.parseFloat(s) < 3700.7777f) {
↑
有关更多信息,请参见Primitive Data Types -
float
。另外,您可能想知道What Every Computer Scientist Should Know About Floating-Point Arithmetic。