我正在为 Minecraft 服务器开发一个插件,并希望使用 DecimalFormat 来获得良好的显示效果。
但是,使用以下代码:
DecimalFormat df = new DecimalFormat("#,###,###,###.##");
p.sendMessage(df.format(amount));
它显示这样的内容:10▯450.23 而不是 10,450.23
为什么?如果您有任何想法,请不要犹豫。
最佳答案
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);
不过要小心。
关于java - 为什么 DecimalFormat 显示 ▯ 而不是逗号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61235140/