1

我正在将现有应用程序移植到 Android,并偶然发现了以下问题。这段代码在 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 上,我NoSuchElementException在执行时得到一个format.format(d)

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用 eg"NaN"而不是替换"",它似乎可以工作,但这不是我想要的行为。我做错了什么还是这是Android类中的错误?

4

1 回答 1

1

这不是报告 Android 核心库错误的正确论坛。code.google.com 是您应该报告 Android 核心库错误的地方:https ://code.google.com/p/android/issues/detail?id=59600

于 2013-08-31T01:30:13.673 回答