8

DecimalFormatは時々「?」を返します しようとするときformat()。このシナリオを作成する入力はありますか?

例えば:

DecimalFormat df = new DecimalFormat("#.####");
df.format(X); // output : '?'

何がX考えられるでしょうか?

4

4 に答える 4

13

これは疑問符ではなく、U+FFFD REPLACEMENT CHARACTER? として表示される です。出力エンコーディングにマップできないため:

NaN は文字列としてフォーマットされ、通常は \uFFFD という 1 文字で構成されます。この文字列は、DecimalFormatSymbols オブジェクトによって決定されます。これは、プレフィックスとサフィックスが使用されていない唯一の値です。

同様に、? 無限大の表現ではU+221E INFINITY文字 (∞) です。

Infinity は文字列としてフォーマットされ、通常は \u221E という 1 文字で構成され、正または負の接頭辞と接尾辞が適用されます。無限の文字列は、DecimalFormatSymbols オブジェクトによって決定されます。

以下も参照してください。

于 2011-04-07T16:20:33.847 に答える
5

「?」が返ってきます。または。_ X_ 「-?」を返すようです。Float.NaNFloat.POSITIVE_INFINITYFloat.NEGATIVE_INFINITY

于 2011-04-07T16:03:13.720 に答える