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>
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>
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>
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!