>  기사  >  백엔드 개발  >  Go에서 수천 개의 쉼표로 정수 형식을 지정하려면 어떻게 해야 하나요?

Go에서 수천 개의 쉼표로 정수 형식을 지정하려면 어떻게 해야 하나요?

Patricia Arquette
Patricia Arquette원래의
2024-10-30 18:57:30564검색

How can I format integers with thousands commas in Go?

Go에서 수천 개의 쉼표를 사용하여 정수 형식 지정

Go의 내장 fmt.Printf 함수는 기본적으로 수천 개의 쉼표가 있는 정수 출력을 지원하지 않습니다. 그러나 이를 달성하는 방법에는 여러 가지가 있습니다.

한 가지 옵션은 유니코드 CLDR에서 지원하는 모든 언어에 대해 현지화된 형식을 제공하는 golang.org/x/text/message 패키지를 사용하는 것입니다. 예는 다음과 같습니다.

<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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.