在Go中使用Currency.Symbol格式化货币值
在Go中,golang.org/x/text/currency包提供了格式化货币值的全面解决方案。该包允许开发人员使用货币代码、符号和本地化信息,以人类可读的格式格式化值。
以下示例演示了如何使用currency.Symbol 来格式化货币值:
unit, _ := currency.ParseISO("BRL")
p := message.NewPrinter(language.BrazilianPortuguese)
result := p.Sprint(currency.Symbol(unit.Amount(float64(valor) / 100)))
上述代码的输出是“R$ 123.456,78”。但是,如果您获得的格式包含点而不是逗号且没有千位分隔符,则可能是由于未在消息中设置适当的区域设置或语言。NewPrinter 函数。
要使用系统区域设置资源,您需要可以指定消息中的语言。NewPrinter函数如下:
import (
"fmt"
"golang.org/x/text/currency"
"golang.org/x/text/language"
"golang.org/x/text/message"
)
func main() {
// Get the current locale
locale, err := language.Parse(language.Default())
if err != nil {
panic(err)
}
// Use the locale to create a message printer
p := message.NewPrinter(locale)
// Format the currency value using currency.Symbol
fmt.Println(p.Sprintf("%v", currency.Symbol(currency.MustParseISO("USD"), 12345678)))
}
此方法将自动使用系统的区域设置来格式化货币值。例如,如果系统区域设置设置为“en_US”,则输出将为“$12,345,678.00”。
通过结合使用currency.Symbol函数和message.NewPrinter函数以及正确的区域设置处理,您可以以多种区域设置和货币格式有效地格式化货币值。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3