2010-09-06 63 views
0

這裏是我的代碼:機器人的NumberFormat


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類中的錯誤?

回答

0

我可能是因爲,作爲一般規則,雙精度數字不是確切的......你不能有小的0和1創建你正在尋找的確切數字,所以,與java SDK,它可能有算法以確定它是否在Epsilon值內,而Android操作系統不會。所以是的,這可能是android操作系統上的NumberFormatter中的一個錯誤。