以下代码似乎破坏旧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

但为什么?!

任何解决这个案例的想法都是非常受欢迎的!

===============>>#1 票数:0 已采纳

根据wiz3kid的评论,这是一个错误。 可能该错误与修改SwiftDroid v2.0 ASIS(基于CyanogenMod-7.1.0)有关

  ask by Pavel translate from so

未解决问题?本站智能推荐: