【问题标题】:How to make strings from floating-point numbers with '.' (dot) as a decimal separator and not more than 3 digits after floating point?如何使用 '.' 从浮点数创建字符串(点)作为小数分隔符,浮点数后不超过 3 位?
【发布时间】:2012-02-01 12:09:38
【问题描述】:

我有这个代码:

public String formatDouble(double d) {
   return String.format("???", d); //Should I use NumberFormat here?
}

对于示例输入:

1.00
1,00
1,23
1.234567

我想得到这个输出:

1
1
1.23
1.234

如何配置模式(或者 NumberFormat 实例)以产生正确的输出?

【问题讨论】:

    标签: java string format number-formatting


    【解决方案1】:

    这将大致满足您的需求:

    Decimalformat df = new DecimalFormat("0.###");
    df.setRoundingMode(RoundingMode.FLOOR);
    df.format(1.2345);
    

    但是,小数点分隔符(点)将取决于当前的语言环境。要覆盖它,您可能需要提供自己的格式符号(请参阅DecimalFormat.setDecimalFormatSymbols())。

    【讨论】:

      【解决方案2】:

      简单方式:String.format("%.2f", 1234.23)

      如果需要千位分隔符,请在点前添加逗号:String.format("%,.2f", 1234.23) -> 结果:1,234.23

      【讨论】:

        【解决方案3】:

        DecimalFormat 应该做你需要的。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-06-03
          • 2019-12-30
          • 2020-09-02
          • 1970-01-01
          • 2016-01-03
          • 1970-01-01
          相关资源
          最近更新 更多