android NumberFormat

时间:2010-09-06 13:14:49

标签: android numbers

这是我的代码:


NumberFormat nf = NumberFormat.getInstance();
nf.setMaximumFractionDigits(14);
nf.setMinimumFractionDigits(0);
double d = 0;
System.out.println(nf.format(d));

使用Android SDK:打印“0.00000000000001” 使用Java SDK(j2SE):它打印“0”

为什么会出现这种差异? Android SDK的NumberFormat类中的错误?

1 个答案:

答案 0 :(得分:0)

我可能是因为,作为一般规则,双精度数字并不精确...你不能得到小0和1来创建你想要的确切数字,所以,使用java SDK,它可能有算法判断其内部是否为Epsilon值,而android OS则不然。所以是的,它可能是Android OS上NumberFormatter中的一个错误。