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」です。ただし、カンマではなくポイントを使用し、桁区切り記号を使用しない形式を取得している場合は、message.NewPrinter 関数に適切なロケールまたは言語が設定されていないことが原因である可能性があります。
システム ロケール リソースを使用するには、次のように、message.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