Java 使用德语语言环境格式化双精度值

Java format double value with german locale

我有双精度值 1400.0,现在我想在 Java 中将此值格式化为 1.400,00。

目前我这样做:

double doubleValue = 1400.0    
String pattern = "0.00";
DecimalFormat format = (DecimalFormat)NumberFormat.getNumberInstance(Locale.GERMAN)
format .applyPattern(pattern);
// will be 1400,00 and not 1.400,00
String formattedValue = format.format(doubleValue);

我错过了什么?

尝试:

String pattern = "#,##0.00";

此模式告诉 DecimalFormat 将分组字符添加到给定数字。

编辑:最初我是用零写的,但这实际上会为小数字创建额外的零。在不需要初始零的地方使用 # 模式。

您可以尝试这样的操作:

class MyClass {
  public static void main(String[] args) {
    double doubleValue = 74637.96;
    Locale locale = Locale.GERMAN;
    String string = NumberFormat.getNumberInstance(locale).format(doubleValue);
    System.out.println(string);
  }
}

输出将是: 74.637,96

GermanFormat