【问题标题】:Java format double value with german locale带有德语语言环境的 Java 格式双值
【发布时间】:2015-03-19 20:51:14
【问题描述】:

我有双精度值 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);

我错过了什么?

【问题讨论】:

  • 我用详细实现替换了代码
  • 将您的模式更改为format.applyPattern("#,##0.00");

标签: java formatting format locale number-formatting


【解决方案1】:

试试:

String pattern = "#,##0.00";

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

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

【讨论】:

  • @JanKoester 那是因为您最初的问题是关于NumberFormat,而不是DecimalFormat。我编辑以匹配。
【解决方案2】:

你可以试试这样的:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-23
    • 1970-01-01
    • 2010-11-23
    • 1970-01-01
    • 2015-01-03
    • 2017-02-15
    相关资源
    最近更新 更多