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