Pergunta

How do one convert a big int to a string (or integer) in Golang?

bigint := big.NewInt(123) //This is what I have
bigstr = "123" //This is what I want
Foi útil?

Solução

Just use the String method : http://golang.org/pkg/math/big/#Int.String

bigint := big.NewInt(123)
bigstr := bigint.String()

Outras dicas

I used the following:

bigint := big.NewInt(1231231231231)
bigstr := fmt.Sprint(bigint)

You asked how to convert a bigInt to string or to int, the accepted answer explains only how to convert to string.

So you have your bigint := big.NewInt(123)


You can convert your bigInt to integer in two possible ways:

  • using .Int64(). With yourInt := bigint.Int64()
  • using .Uint64(). With yourUint := bigint.Uint64()

The reason for two methods is that uint holds 2 time bigger numbers, and sometimes you know that the answer is positive. Beware that if the number is bigger than the maximum possible for int64/uint64:

If x cannot be represented in an int64, the result is undefined.


And for completeness, to convert to string, just use .String() bigstr := bigint.String()

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top