Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann ich in Go ganze Zahlen mit Tausenderkommas formatieren?

Wie kann ich in Go ganze Zahlen mit Tausenderkommas formatieren?

Patricia Arquette
Patricia ArquetteOriginal
2024-10-30 18:57:30644Durchsuche

How can I format integers with thousands commas in Go?

Ganzzahlen mit Tausenderkommas in Go formatieren

Die integrierte fmt.Printf-Funktion von Go unterstützt die Ausgabe von Ganzzahlen mit Tausenderkommas nicht nativ. Es gibt jedoch mehrere Möglichkeiten, dies zu erreichen.

Eine Möglichkeit ist die Verwendung des Pakets golang.org/x/text/message, das lokalisierte Formatierung für jede vom Unicode CLDR unterstützte Sprache bereitstellt. Hier ist ein Beispiel:

<code class="go">package main

import (
    "golang.org/x/text/language"
    "golang.org/x/text/message"
)

func main() {
    p := message.NewPrinter(language.English)
    p.Printf("%d\n", 1000)

    // Output:
    // 1,000
}</code>

Dieser Code verwendet das Gebietsschema der englischen Sprache, Sie können jedoch bei Bedarf jedes andere unterstützte Gebietsschema angeben.

Eine andere Option besteht darin, eine Bibliothek eines Drittanbieters zu verwenden, z als [github.com/AlekSi/decimal](https://github.com/AlekSi/decimal). Diese Bibliothek bietet eine Vielzahl von Methoden zum Formatieren von Zahlen, einschließlich der Möglichkeit, Tausenderkommas hinzuzufügen. Hier ein Beispiel:

<code class="go">package main

import (
    "github.com/AlekSi/decimal"
)

func main() {
    num := decimal.NewFromFloat(1000)
    str := num.String()

    fmt.Println(str)

    // Output:
    // 1,000
}</code>

Wenn Sie schließlich keine externen Bibliotheken verwenden möchten, können Sie die Nummer manuell selbst formatieren. Dies ist relativ einfach zu bewerkstelligen. Zuerst müssen Sie die Ganzzahl in eine Zeichenfolge konvertieren. Anschließend müssen Sie an den entsprechenden Stellen Kommas einfügen. So geht's:

<code class="go">func fmtComma(n int) string {
    str := strconv.Itoa(n)
    formatted := ""

    for i := len(str); i > 0; i -= 3 {
        if i == len(str) {
            formatted = str[:i]
        } else {
            formatted = str[i-3:i] + "," + formatted
        }
    }

    return formatted
}

func main() {
    fmt.Println(fmtComma(1000))

    // Output:
    // 1,000
}</code>

Das obige ist der detaillierte Inhalt vonWie kann ich in Go ganze Zahlen mit Tausenderkommas formatieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn