Java 使用printf时不需要的美元符号

Java 使用printf时不需要的美元符号,java,Java,当我写作时: System.out.printf("%.3f", 31.0/4.0); 它给了我7美元750 为什么出现美元($)符号而不是点()?这是一个区域设置问题。您需要更改区域设置 System.out.printf(Locale.US, "%.3f", 31.0/4.0); 您可以使用以下方法验证问题: System.out.println(Locale.getDefault()); @Paul请发布区域设置的结果。getDefault,我很好奇区域设置能做什么…这是pt_pt(

当我写作时:

System.out.printf("%.3f", 31.0/4.0);
它给了我7美元750


为什么出现美元(
$
)符号而不是点(
)?

这是一个
区域设置问题。您需要更改
区域设置

System.out.printf(Locale.US, "%.3f", 31.0/4.0);
您可以使用以下方法验证问题:

System.out.println(Locale.getDefault());

@Paul请发布
区域设置的结果。getDefault
,我很好奇区域设置能做什么…这是pt_pt(葡萄牙)谢谢@Paul,我怀疑这是默认行为。。。您可能已经编辑了系统的区域设置,或者JVM版本中存在错误?@AxelH您是对的,这不是默认行为,因为我安装了最后一个JDK和JRE的十进制分隔符,并且我使用eclipse。。。默认情况下已安装所有内容。。。