ホームページ >バックエンド開発 >Golang >Go で Currency.Symbol を使用して、カンマと千の位の区切り文字を使用して通貨値をフォーマットする方法

Go で Currency.Symbol を使用して、カンマと千の位の区切り文字を使用して通貨値をフォーマットする方法

Susan Sarandon
Susan Sarandonオリジナル
2024-10-24 02:27:01569ブラウズ

How to Format Currency Values with Commas and Thousand Separators Using Currency.Symbol in Go?

Go の Currency.Symbol を使用した通貨値の書式設定

Go では、 golang.org/x/text/currency パッケージは、通貨値を書式設定するための包括的なソリューションを提供します。このパッケージを使用すると、開発者は通貨コード、記号、ローカリゼーション情報を操作して、人間が判読できる形式で値をフォーマットできます。

ここでは、currency.Symbol を使用して通貨値をフォーマットする方法を示す例を示します:

<code class="go">unit, _ := currency.ParseISO("BRL")
p := message.NewPrinter(language.BrazilianPortuguese)
result := p.Sprint(currency.Symbol(unit.Amount(float64(valor) / 100)))</code>

上記のコードの出力は「R$ 123.456,78」です。ただし、コンマではなくポイントを使用し、桁区切り文字を含まない形式が得られる場合は、message.NewPrinter 関数で適切なロケールまたは言語が設定されていないことが原因である可能性があります。

システム ロケール リソースを使用するには、次のように、message.NewPrinter 関数で言語を指定できます:

<code class="go">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)))
}</code>

このアプローチでは、システムのロケール設定を自動的に使用して通貨値の形式を設定します。たとえば、システム ロケールが「en_US」に設定されている場合、出力は「$12,345,678.00」になります。

currency.Symbol 関数を message.NewPrinter 関数および適切なロケール処理と組み合わせて利用することで、次のことが可能になります。通貨値を幅広いロケールと通貨形式で効果的にフォーマットします。

以上がGo で Currency.Symbol を使用して、カンマと千の位の区切り文字を使用して通貨値をフォーマットする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。