如何在Java中格式化浮点数为0#.##的形式?

3
我会翻译成中文:
我从用户那里获取输入。我希望以这种格式打印它:
0#.##

或者

##.##

如何在Java中实现这个功能?

今天我正在使用:

padWithZeroRightToPeriod(product.formats[index],Float.parseFloat(currentPrice));

并且

private String padWithZeroRightToPeriod(String serverFormat, float unformattedNumber) {
  int nDigits = getNumberOfDigitsAfterPeriod(serverFormat);
  String floatingFormat = "%4." + nDigits + "f";
  String formattedPrice = String.format(floatingFormat, unformattedNumber);

  return formattedPrice
}

但它将 08.56 转换为 8.56
2个回答

1

保留至少两位整数和两位小数,前面补零:

String floatingFormat = "%05.2f";
  • 0 用零而不是空格填充字符串。
  • 5 是最小的总字段宽度,包括整数、小数和小数点部分。
  • 2 是要打印的小数位数。

0

尝试使用DecimalFormatter

        float f= 3.44f;                 
        DecimalFormat df = new DecimalFormat("00.##");    
        System.out.println("formatted  value::"+ df.format(f));

============================================================================== 已更新您的函数

private static String padWithZeroRightToPeriod(String serverFormat, float unformattedNumber) {
        DecimalFormat df = new DecimalFormat(serverFormat);    
        return df.format(unformattedNumber);
    }

调用函数

padWithZeroRightToPeriod("00.##",3.44f)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接