DecimalFormat 忽略给定的模式但使用 Locale
DecimalFormat ignores given pattern but uses Locale
我想使用 DecimalFormat
通过给定的格式字符串格式化数字。这记录在 oracle java docs.
中
public class DecimalFormatDemo {
static public void customFormat(String pattern, double value ) {
DecimalFormat myFormatter = new DecimalFormat(pattern);
String output = myFormatter.format(value);
System.out.println(value + " " + pattern + " " + output);
}
static public void main(String[] args) {
customFormat("###,###.###", 123456.789);
}
}
但是我的德语输出是德语格式样式 os:
actual: 123456.789 ###,###.### 123.456,789
expected: 123456.789 ###,###.### 123,456.789
我知道我可以 explicitly set the separators。
但我希望能够像 oracle 文档中那样通过字符串设置格式。这应该独立于我的 os 语言环境。
由于您的默认语言环境是德语,因此您将获得德语数字格式。如果您想更改 select 您的 DecimalFormat 下的数字格式的不同语言环境。
示例:
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.util.Locale;
public class DecimalFormatDemo {
static public void customFormat(String pattern, double value ) {
NumberFormat nf1 = NumberFormat.getNumberInstance(Locale.ENGLISH);
DecimalFormat df1 = (DecimalFormat)nf1;
df1.applyPattern(pattern);
String output = df1.format(value);
System.out.println("Input: " + value + ", pattern: " + pattern + " output: " + output);
NumberFormat nf2 = NumberFormat.getNumberInstance(Locale.GERMAN);
DecimalFormat df2 = (DecimalFormat)nf2;
df2.applyPattern(pattern);
output = df2.format(value);
System.out.println("Input: " + value + ", pattern: " + pattern + " output: " + output);
}
static public void main(String[] args) {
customFormat("###,###.###", 123456.789);
}
}
输出:
Input: 123456.789, pattern: ###,###.### output: 123,456.789
Input: 123456.789, pattern: ###,###.### output: 123.456,789
我想使用 DecimalFormat
通过给定的格式字符串格式化数字。这记录在 oracle java docs.
public class DecimalFormatDemo {
static public void customFormat(String pattern, double value ) {
DecimalFormat myFormatter = new DecimalFormat(pattern);
String output = myFormatter.format(value);
System.out.println(value + " " + pattern + " " + output);
}
static public void main(String[] args) {
customFormat("###,###.###", 123456.789);
}
}
但是我的德语输出是德语格式样式 os:
actual: 123456.789 ###,###.### 123.456,789
expected: 123456.789 ###,###.### 123,456.789
我知道我可以 explicitly set the separators。 但我希望能够像 oracle 文档中那样通过字符串设置格式。这应该独立于我的 os 语言环境。
由于您的默认语言环境是德语,因此您将获得德语数字格式。如果您想更改 select 您的 DecimalFormat 下的数字格式的不同语言环境。
示例:
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.util.Locale;
public class DecimalFormatDemo {
static public void customFormat(String pattern, double value ) {
NumberFormat nf1 = NumberFormat.getNumberInstance(Locale.ENGLISH);
DecimalFormat df1 = (DecimalFormat)nf1;
df1.applyPattern(pattern);
String output = df1.format(value);
System.out.println("Input: " + value + ", pattern: " + pattern + " output: " + output);
NumberFormat nf2 = NumberFormat.getNumberInstance(Locale.GERMAN);
DecimalFormat df2 = (DecimalFormat)nf2;
df2.applyPattern(pattern);
output = df2.format(value);
System.out.println("Input: " + value + ", pattern: " + pattern + " output: " + output);
}
static public void main(String[] args) {
customFormat("###,###.###", 123456.789);
}
}
输出:
Input: 123456.789, pattern: ###,###.### output: 123,456.789
Input: 123456.789, pattern: ###,###.### output: 123.456,789