lab - int64 to string golang
Convertir uint64 a cadena en golang (4)
Si quieres convertir int64
a string
, puedes usar:
strconv.FormatInt(time.Now().Unix(), 10)
o
strconv.FormatUint
Estoy intentando imprimir una string
con un uint64
pero no uint64
ninguna combinación de métodos strconv
que uso.
log.Println("The amount is: " + strconv.Itoa((charge.Amount)))
Me da:
cannot use charge.Amount (type uint64) as type int in argument to strconv.Itoa
¿Cómo puedo imprimir esta string
?
Si realmente quieres mantenerlo en una cadena, puedes usar una de las funciones de Sprint. Por ejemplo:
myString := fmt.Sprintf("%v", charge.Amount)
log.Printf("The amount is: %d/n", charge.Amount)
strconv.Itoa()
espera un valor de tipo int
, por lo que debe asignarle eso:
log.Println("The amount is: " + strconv.Itoa(int(charge.Amount)))
Pero sepa que esto puede perder precisión si int
es de 32 bits (mientras que uint64
es 64), también la significación es diferente. strconv.FormatUint()
sería mejor ya que espera un valor de tipo uint64
:
log.Println("The amount is: " + strconv.FormatUint(charge.Amount, 10))
Para obtener más opciones, vea esta respuesta: Golang: ¿formatear una cadena sin imprimir?
Si su propósito es simplemente imprimir el valor, no necesita convertirlo, ni a int
ni a string
, use uno de estos:
log.Println("The amount is:", charge.Amount)
log.Printf("The amount is: %d/n", charge.Amount)