Java DecimalFormat返回"?"

tin*_*ime 7 java formatting decimalformat

DecimalFormat有时会回来'?' 在尝试时format().是否有可以创建此方案的输入?

例如:

DecimalFormat df = new DecimalFormat("#.####");
df.format(X); // output : '?'
Run Code Online (Sandbox Code Playgroud)

还有什么X可能呢?

axt*_*avt 11

这不是问号,它是一个U+FFFD REPLACEMENT CHARACTER,显示为?因为它无法映射到输出编码:

NaN被格式化为字符串,通常具有单个字符\ uFFFD.此字符串由DecimalFormatSymbols对象确定.这是不使用前缀和后缀的唯一值.

同样,?在无穷大的表示中是一个U+221E INFINITY字符(∞).

Infinity被格式化为字符串,通常具有单个字符\ u221E,其中应用了正或负前缀和后缀.无穷大字符串由DecimalFormatSymbols对象确定.

也可以看看:


Whi*_*g34 5

它会回归"?" 如果XFloat.NaNFloat.POSITIVE_INFINITY.似乎Float.NEGATIVE_INFINITY返回" - ?".