The package golang.org/x/text/message
allows us to format numbers using national formats:
const n = 1222333.444555
prEn := message.NewPrinter(language.English)
prEn.Printf("%20.6f
", n)
// Prints:
// 1,222,333.444555
prRu := message.NewPrinter(language.Russian)
prRu.Printf("%20.6f
", n)
// Prints:
// 1 222 333,444555
Can I use it with math/big.Rat
? That is, something like (doesn't work):
rat := big.NewRat(1222333444555, 1000000)
prEn.Printf("%20.6f
", rat.FloatString(6))
// Should print:
// 1,222,333.444555
I know that I can wrap Rat
in my own type and implement fmt.Formatter
, but maybe there is a built-in way already?