以下代码似乎破坏旧Android设备上的Float.isNaN()逻辑。 设备:LG-GT540 / Android2.3.7
[重要更新] Android上的Android是SwiftDroid v2.0 ASIS(基于CyanogenMod-7.1.0)
int a = 2;
float b = a;
Log.d("yo", "1, Float.isNaN=" + Float.isNaN(Float.NaN));
boolean test = (b == 2);
Log.d("yo", "2, Float.isNaN=" + Float.isNaN(Float.NaN));
这使得Float.isNaN(Float.NaN)返回“false”,这是错误的。
你知道为什么吗?
是JVM错误吗?
在我们拥有的所有设备上,代码按预期运行:
1, Float.isNaN=true
2, Float.isNaN=true
但是在LG的旧Android上,第二次NaN测试失败了。
1, Float.isNaN=true
2, Float.isNaN=false
但为什么?!
非常欢迎任何解决此案例的想法!
答案 0 :(得分:0)
根据wiz3kid的评论,这是一个错误。 可能该错误与修改SwiftDroid v2.0 ASIS(基于CyanogenMod-7.1.0)有关