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中文網其他相關文章!