繁体   English   中英

为什么Float.isNaN(Float.NaN)在旧的LG手机Android 2.3.7上是“假的”?

[英]Why Float.isNaN(Float.NaN) is “false” on an old LG phone Android 2.3.7?

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

但为什么?!

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM