。在评估检查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”。
缺少什么我在这里?任何帮助?
'3700.7777'是一个'double'。编辑:你应该避免测试浮点数是否相等,除非你非常小心,并确切知道它们是如何工作的(你不这样做,我不这样做,绝大多数程序员都不知道)。 – immibis
“*即使's'的值与条件*”=>中的值相同吗? – assylias
检查是否为'if(Float.parseFloat(s)== 3700.7777f)'条件工作? – Himanshu