我的应用程序在许多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 !!
这怎么可能?
答案 0 :(得分:0)
它是一个非常小的数字(即0.000000..01)
如果它对您有意义,您可以尝试BigDecimal
否则你可以决定小于x的数字(你决定x有多小)是0。
答案 1 :(得分:0)
如果您的问题是这怎么可能?,我想您可以下载Android源代码,在 libcore / luni / src / main / java / java / lang <中查找相关来源/ em>,并且,从Float.toString()开始,开始按功能将函数导入项目,每次检查仍然看到错误时检查。您将找到该错误,它可能与FP数学有关。 (也许,就像尾数中最重要部分的随机位一样。)