Groovy 货币格式

标签 groovy formatting currency

我正在使用 groovy (grails 1.3.7) 将一些行写入文本文件,并且我想像此示例输出一样格式化货币:

$100,000,000.00
  $9,123,123.25
         $10.20
      $1,907.23

所以基本上是右对齐的,或者左填充的,美元符号在数字前面,所以它们都像上面一样排列。第一个数字是我们期望看到的最长的数字。现在我有一个 amount 变量,它只是用 def 定义的,而不是字符串或数字或类似的任何特定内容,但如果需要,我显然可以更改它。谢谢!

最佳答案

您可能想使用 NumberFormat.getCurrencyInstance() 。这将返回一个 NumberFormat 对象,该对象使用默认区域设置(或可选的您传入的区域设置)的标准货币表示形式。

要右对齐,您可以使用 String.padLeft() .

示例:

def formatter = java.text.NumberFormat.currencyInstance
def values = [0, 100000000, 9123123.25, 10.20, 1907.23]
def formatted = values.collect  { formatter.format(it) }
def maxLen = formatted*.length().max()
println formatted.collect { it.padLeft(maxLen) }.join("\n")

//output
          $0.00
$100,000,000.00
  $9,123,123.25
         $10.20
      $1,907.23

关于Groovy 货币格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21032525/

相关文章:

groovy - Geb 自动化中未调用 env.groovy 的 Before() 方法

java - Groovy/Grails 包含小写字母

java - 在 findbugs 中为 <static initializer> 添加独占过滤器

javascript - 设置电话号码等文本框中文本的格式

forms - 如何对齐两个表单提交

paypal - 如何从 PayPal 中删除或修改货币列表?

java - 使用Java在PostgreSQL上的Money数据

java - 如何在本地格式化 Jenkinsfile?

java - 如何格式化带有前导零的Java字符串?

javascript - 获取支持的货币列表