java - 如何在 java 中格式化像 0#.## 这样的 float ?

标签 java string formatting

<分区>

我从用户那里得到了一个输入。我想以这种格式打印它:

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

最佳答案

两位小数,至少两位整数,前导零:

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

关于java - 如何在 java 中格式化像 0#.## 这样的 float ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19785195/

相关文章:

java - 可以使用哪些扩展/插件/提供程序机制来使我的 Web 应用程序可扩展?

java - 在 Spring MVC 中将请求写入文件

java - @ElementCollection 和字符串列表的异常

java - 在增强的 for 循环中使用类

java - 检查字符串是否以 _ 或数字 (0-9) 开头

tabs - WebStorm/PHPStorm 中的智能标签有什么作用?

java - 为什么池中存在两个具有相同数据的文字

c# - 为什么Object.Equals优先于从实例调用String.Equals?

c# - 在 .Net String.Format 中强制 double 正号

java - 如何用前导空格解析 LocalDateTime?