Go 中格式化带有千位逗号的整数
Go 内置的 fmt.Printf 函数本身不支持输出带有千位逗号的整数。但是,有多种方法可以实现此目的。
一种选择是使用 golang.org/x/text/message 包,它为 Unicode CLDR 支持的任何语言提供本地化格式。下面是一个示例:
<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>
此代码使用英语语言区域设置,但您可以根据需要指定任何其他支持的区域设置。
另一种选择是使用第三方库,例如作为 [github.com/AlekSi/decimal](https://github.com/AlekSi/decimal)。该库提供了多种格式化数字的方法,包括添加数千个逗号的功能。下面是一个示例:
<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>
最后,如果您不想使用任何外部库,您可以自己手动格式化数字。这相对简单。首先,您需要将整数转换为字符串。然后,您需要在适当的位置插入逗号。操作方法如下:
<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>
以上是如何在 Go 中格式化带有数千个逗号的整数?的详细内容。更多信息请关注PHP中文网其他相关文章!