2013-05-22 57 views
1

我正在將現有應用程序移植到Android,並且偶然發現了以下問題。這段代碼工作完全正常在Java SE:在Android上格式化數字時出現NoSuchElementException,但不在Java上SE

String NAN_STRING = ""; 
    DecimalFormatSymbols SYMBOLS; 
    SYMBOLS = new DecimalFormatSymbols(); 
    SYMBOLS.setDecimalSeparator('.'); 
    SYMBOLS.setNaN(NAN_STRING); 
    DecimalFormat format = new DecimalFormat("0.###", SYMBOLS); 

    double d = Double.NaN; 

    System.out.print("x"); 
    System.out.print(format.format(d)); 
    System.out.print("y"); 

但是,在Android上執行format.format(d)當我得到一個NoSuchElementException

Caused by: java.util.NoSuchElementException 
    at libcore.icu.NativeDecimalFormat$FieldPositionIterator.next(NativeDecimalFormat.java:564) 
    at libcore.icu.NativeDecimalFormat$FieldPositionIterator.setFieldPosition(NativeDecimalFormat.java:550) 
    at libcore.icu.NativeDecimalFormat$FieldPositionIterator.access$000(NativeDecimalFormat.java:507) 
    at libcore.icu.NativeDecimalFormat.formatDouble(NativeDecimalFormat.java:264) 
    at java.text.DecimalFormat.format(DecimalFormat.java:677) 
    at java.text.NumberFormat.format(NumberFormat.java:211) 
    at com.example.androidtestbed.MainActivity.onCreate(MainActivity.java:27) 

如果我有例如更換NAN_STRING"NaN"而不是"",它似乎工作,但這不是我想要的行爲。我做錯了什麼或者這是Android類中的錯誤?

回答

1

這不是舉報Android核心庫錯誤的正確論壇。 code.google.com是你應該報告Android核心庫錯誤的地方:https://code.google.com/p/android/issues/detail?id=59600

+1

我意識到這一點,但我懷疑在我的代碼中有一個錯誤,我忽略了。有了這樣成熟的核心庫,它通常是錯誤的用戶;) – blubb

相關問題