为什么 DecimalFormat 显示 ▯ 而不是逗号?

Why DecimalFormat displays ▯ instead of commas?

我正在为 Minecraft 服务器开发一个插件,并希望使用 DecimalFormat 来获得漂亮的显示效果。

但是,使用此代码:

DecimalFormat df = new DecimalFormat("#,###,###,###.##");
p.sendMessage(df.format(amount));

它显示这样的东西:10▯450.23 而不是 10,450.23

为什么??如果您有任何想法,请不要犹豫。

我测试了您发送的确切代码,它对我来说工作得很好!我真的不知道问题出在哪里?尝试使用标准的 Minecraft 材质包。

DecimalFormat 有 Locale-sensitive formatting.

您启动 Minecraft 服务器的系统可能在不同的语言环境中。

如果您想为不同的语言环境(例如标准英语语言环境)获取 DecimalFormat,请按以下步骤操作:

NumberFormat nf = NumberFormat.getNumberInstance(Locale.ENGLISH);
DecimalFormat df = (DecimalFormat) nf;
df.applyPattern("#,###,###,###.##");
p.sendMessage(df.format(amount));

您还可以更改 JVM 实例的区域设置,这样您就不必每次都将区域设置更改为英语:

Locale.setDefault(Locale.ENGLISH);

不过要小心。