浮动上出现意外的科学格式

时间:2012-03-25 23:13:11

标签: java android

根据docs

String text = String.format("%5.1e", 3.1415f);

应该产生类似

的东西
3.1E+00

在我的模拟器上,它符合预期

3.1E+00

在我的开发电话上显示为

3.1*10^+00

这使得它无法用于所有实际目的。

Android文档并没有告诉我很多关于本地化的信息,但Oracle doc仅提到了第一部分“3.1”的本地化格式。

是否有一种简单的方法可以获得一致的格式化?

这是记录在案的行为吗?一个错误?

HTC Nexus One给出了奇怪的行为,三星Galaxy Nexus给出了正确的行为。

1 个答案:

答案 0 :(得分:1)

它听起来像是N1的问题,或者是N1正在运行的Android版本。一个选项是从你知道它工作的地方获取代码,然后复制到你自己的格式代码中以获得科学数字。

查看java.util.Formatter的源代码,看看这个print()方法。这似乎是魔术发生的地方。