4
以下代码似乎破坏旧版Android设备上的Float.isNaN()逻辑。 的装置:LG-GT540/Android2.3.7为什么Float.isNaN(Float.NaN)在旧的LG手机Android 2.3.7上是“假”?
[重要UPDATE] 船上的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));
这使得浮动。 isNaN(Float.NaN)返回“false”,这是错误的。
你知道为什么吗?
这是JVM错误吗?
在所有我们拥有的设备,该代码会如期运行:
1, Float.isNaN=true
2, Float.isNaN=true
可是,在一个旧的Android从LG第二NaN的测试失败。
1, Float.isNaN=true
2, Float.isNaN=false
但为什么?!
解决此案件的任何想法都非常受欢迎!
看起来像一个bug – d3dave
谢谢!我们来看看还有其他人要说些什么。有关解决方法的任何想法? – Pavel