2012-08-04 15 views
9

¿Cómo se puede convertir una int grande en una cadena (o entero) en Golang?Convierte un bigint en una cadena en Go

bigint := big.NewInt(123) //This is what I have 
bigstr = "123" //This is what I want 
+0

Gracias por el comentario pst. Después de horas de búsqueda, diría que la documentación no es buena en bigints. Por ejemplo, todavía no podía entender por mi vida cómo convertir una cuerda en una letra grande. – Yster

Respuesta

19

sólo tiene que utilizar el String método: http://golang.org/pkg/math/big/#Int.String

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

Gracias por la respuesta, cyberdelia. ¿Debería hacer una pregunta nueva, o puedo preguntarle cómo convertirla al revés: de una cadena a una letra grande? (De nuevo, no pude encontrar la respuesta en ningún lado). – Yster

+3

@Yster - http://golang.org/pkg/math/big/#Int.SetString – BurntSushi5

+0

@ BurntSushi5 - ¡Muchas gracias! Es una gran cadena pequeña para grande. Ejemplo: bigint.SetString ("123", 10) – Yster

0

que utilizó la siguiente:

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

Llamar 'bigint.String()' directamente (en lugar de a través de la interfaz {} de fmt) es más simple y más eficiente. La única razón para usar el paquete 'fmt' para esto es si quiere hacer uso de un formato especial. –

+0

Utilicé bigint.String() en un int realmente grande y obtuve algo como 1.2123423534546e308 – victorsamuelmd

0

Usted preguntó cómo convertir un Bigint de cuerda o de INT, la respuesta aceptada explica solo cómo convertir a cadena

Así que tienes tu bigint := big.NewInt(123)


, pero puede cambiar a Bigint número entero de dos maneras posibles:

  • usando .Int64(). Con yourInt := bigint.Int64()
  • usando .Uint64(). Con yourUint := bigint.Uint64()

La razón de dos métodos es que uint contiene 2 veces números más grandes y, a veces, usted sabe que la respuesta es positiva. Tenga en cuenta que si el número es mayor que el máximo posible para int64/uint64:

Si no se puede representar x en un int64, el resultado no está definido.


está completo y, para convertir a la cadena, sólo tiene que utilizar .String()bigstr := bigint.String()

Cuestiones relacionadas