Golang获得当前文化的小数分隔符

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Golang获得当前文化的小数分隔符相关的知识,希望对你有一定的参考价值。

在Golang中有一种方法可以在Windows中获取当前的OS小数分隔符吗?

我知道在控制面板的地理区域设置中,您可以指定自定义小数分隔符,因此必须有办法获得此值...或者不是?

我想使用fmt.Printf()并使用OS当前十进制符号格式化任何浮点数。

答案

我想使用fmt.Printf()并使用OS当前十进制符号格式化任何浮点数。

要获得当前的语言操作系统,您可以使用跨平台软件包,例如https://github.com/cloudfoundry-attic/jibber_jabber

要打印本地化文本,您可以使用https://godoc.org/golang.org/x/text中提供的文本包

package main

import (
    "fmt"

    "github.com/cloudfoundry/jibber_jabber"
    "golang.org/x/text/language"
    "golang.org/x/text/message"
)

func main() {
    userLanguage, err := jibber_jabber.DetectLanguage()
    if err != nil {
        panic(err)
    }
    fmt.Println("Language:", userLanguage)

    tagLanguage := language.Make(userLanguage)
    fmt.Println("Language:", tagLanguage)

    {
        p := message.NewPrinter(language.BritishEnglish)
        p.Printf("There are %v flowers in our garden.
", 1500)
    }
    {
        p := message.NewPrinter(tagLanguage)
        p.Printf("There are %v flowers in our garden.
", 1500)
    }
}

如你所见,你不再直接使用fmt包,而是你必须创建一个Printer并使用这个来适当地显示文本。

要获得有关此软件包用法的更多详细信息,请阅读https://phraseapp.com/blog/posts/internationalization-i18n-go/

在Golang中有一种方法可以在Windows中获取当前的OS小数分隔符吗?

我无法确定如何从文本包中提取此信息。

以上是关于Golang获得当前文化的小数分隔符的主要内容,如果未能解决你的问题,请参考以下文章

如何禁止逗号作为小数分隔符

如何使 Javascript“toString”隐含方法文化意识

如何使用开放 XML 检索 excel 的文化信息?

试图为当前语言设置小数点分隔符,得到“实例是只读的”

如何返回用户在 PC 中使用的当前文化

按货币获取文化