将 DecimalFormatSymbols#setGroupingSeparator('.') 方法添加到您的代码中,例如:
DecimalFormatSymbols symbols = new DecimalFormatSymbols();
symbols.setDecimalSeparator(',');
symbols.setGroupingSeparator('.'); // Add This.
但也要使用特定于系统当前区域设置的格式,例如:
df.applyPattern("#,###.##");
请注意,您确实不需要像使用格式模式那样深入。上面显示的就足够了。数字组总是包含 3 位数字,您只需要在此处指定要使用分隔符即可
另外,使用数字值而不是数字字符串,例如:
int value = 123456789; // or 123_456_789
String formattedValue = df.format(value);
总而言之,这应该可行:
DecimalFormatSymbols symbols = new DecimalFormatSymbols();
symbols.setDecimalSeparator(',');
symbols.setGroupingSeparator('.'); // Added this...
DecimalFormat df = new DecimalFormat();
df.setDecimalFormatSymbols(symbols);
df.applyPattern("#,###.##"); // Note the format pattern used.
int value = 123456789;**strong text** // Use a number variable.
String formattedValue = df.format(value);
System.out.println(formattedValue);
输出到控制台:
123.456.789
例如意大利、西班牙和挪威等一些国家/地区使用这种数字格式,考虑到这一点,您可以这样做:
DecimalFormatSymbols symbols = new DecimalFormatSymbols(java.util.Locale.ITALIAN);
DecimalFormat df = new DecimalFormat("#,###.##", symbols);
int value = 123456789; // or 123_456_789
String formattedValue = df.format(value);
System.out.println(formattedValue);
输出到控制台:
123.456.789
注意 Locale 添加到 DecimalFormatSymbols 构造函数 (Locale.ITALIAN)。还要注意实际的格式。使用系统特定语言环境的格式。另请注意,使用包含文字数字的 int 变量类型而不是数字字符串。
尝试使用 double 类型(浮点)值:
DecimalFormatSymbols symbols = new DecimalFormatSymbols(java.util.Locale.ITALIAN);
DecimalFormat df = new DecimalFormat("#,###.##", symbols);
double value = 1234567.89d;
String formattedValue = df.format(value);
System.out.println(formattedValue);
输出到控制台:
1.234.567,89