我正在使用 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/