Maison > développement back-end > Golang > le corps du texte

Comment puis-je formater des entiers avec des milliers de virgules dans Go ?

Patricia Arquette
Libérer: 2024-10-30 18:57:30
original
583 Les gens l'ont consulté

How can I format integers with thousands commas in Go?

Formatage d'entiers avec des milliers de virgules dans Go

La fonction fmt.Printf intégrée de Go ne prend pas en charge nativement la sortie d'entiers avec des milliers de virgules. Cependant, il existe plusieurs façons d'y parvenir.

Une option consiste à utiliser le package golang.org/x/text/message, qui fournit un formatage localisé pour toute langue prise en charge par le CLDR Unicode. Voici un exemple :

<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>
Copier après la connexion

Ce code utilise les paramètres régionaux de langue anglaise, mais vous pouvez spécifier n'importe quel autre paramètre régional pris en charge si vous le souhaitez.

Une autre option consiste à utiliser une bibliothèque tierce, telle que comme [github.com/AlekSi/decimal](https://github.com/AlekSi/decimal). Cette bibliothèque fournit diverses méthodes de formatage des nombres, notamment la possibilité d'ajouter des milliers de virgules. Voici un exemple :

<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>
Copier après la connexion

Enfin, si vous ne souhaitez utiliser aucune bibliothèque externe, vous pouvez formater manuellement le numéro vous-même. C'est relativement simple à faire. Tout d’abord, vous devez convertir l’entier en chaîne. Ensuite, vous devez insérer des virgules aux emplacements appropriés. Voici comment procéder :

<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>
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!