3

我有一个在许多 Android 设备上运行良好的应用程序,但在 PlayBook 上运行的 BlackBerry Android 播放器存在问题(它运行 Android 2.3)。

我在 PreferenceManager.getDefaultSharedPreferences() 上有一个 NumberFormatException。似乎在首选项文件中,一个浮点数被保存为“@.0E-12”。我做了这个简单的测试:

float f = 1.0e-12f;
System.out.println (f); // prints "@.0E-12" on BlackBerry PlayBook !!

怎么会这样?

4

2 回答 2

0

它是一个非常小的数字(即 0.000000..01)。
如果这对您有任何意义,您可以尝试BigDecimal
否则,您可以确定小于 x 的数字(您决定 x 有多小)为 0。

于 2013-04-17T07:17:12.163 回答
0

如果您的问题是这怎么可能?,我想你可以下载Android源码,在libcore/luni/src/main/java/java/lang中找到相关的源码,然后,从 Float.toString() 开始,逐个函数地导入你的项目,检查每一个该错误仍然可见的时间。您将找到错误,它可能与 FP 数学有关。(也许,就像尾数最低有效部分中的随机位一样。)

于 2013-04-17T07:39:55.910 回答