I would like to format a big int as a string with leading zeros. I'm looking for an example similar to this, but with Big:
I'm looking at source here.
But when I call:
m := big.NewInt(99999999999999)
fmt.Println(m.Format("%010000000000000000000","d"))
I see:
prog.go:10:22: m.Format("%010000000000000000000", "d") used as value
prog.go:10:23: cannot use "%010000000000000000000" (type string) as type fmt.State in argument to m.Format:
string does not implement fmt.State (missing Flag method)
prog.go:10:48: cannot use "d" (type string) as type rune in argument to m.Format
(I understand normally I can use m.String(), but zero padding seems to complicate this, so I'm looking specifically for some help on the Format method.)
Here's my playground link.
You can simply use fmt.Sprintf(...)
with the "%020s"
directive (where 20 is whatever total length you want). The s
verb will use the natural string format of the big int and the 020
modifier will create a string with total length of (at least) 20 with zero padding (instead of whitespace).
For example (Go Playground):
m := big.NewInt(99999999999999)
s := fmt.Sprintf("%020s", m)
fmt.Println(s)
// 00000099999999999999