83 votes

Comment convertir uint64 en chaîne de caractères

J'essaie d'imprimer un string avec un uint64 mais aucune combinaison de strconv Les méthodes que j'utilise fonctionnent.

log.Println("The amount is: " + strconv.Itoa((charge.Amount)))

Donne-moi :

cannot use charge.Amount (type uint64) as type int in argument to strconv.Itoa

Comment puis-je imprimer cette string ?

124voto

icza Points 3857

strconv.Itoa() attend une valeur de type int donc tu dois lui accorder ça :

log.Println("The amount is: " + strconv.Itoa(int(charge.Amount)))

Mais sachez que cela peut perdre en précision si int est en 32 bits (alors que uint64 est de 64), le signe est également différent. strconv.FormatUint() serait préférable car il attend une valeur de type uint64 :

log.Println("The amount is: " + strconv.FormatUint(charge.Amount, 10))

Pour plus d'options, voir cette réponse : Golang : formater une chaîne sans imprimer ?

Si votre but est de simplement imprimer la valeur, vous n'avez pas besoin de la convertir, ni en int ni à string utilisez l'un d'entre eux :

log.Println("The amount is:", charge.Amount)
log.Printf("The amount is: %d\n", charge.Amount)

53voto

lingwei64 Points 191

Si vous voulez convertir int64 a string vous pouvez utiliser :

strconv.FormatInt(time.Now().Unix(), 10)

ou

strconv.FormatUint

12voto

Peter Fendrich Points 91

Si vous voulez vraiment le garder dans une chaîne de caractères, vous pouvez utiliser une des fonctions Sprint. Par exemple :

myString := fmt.Sprintf("%v", charge.Amount)

13 votes

Pourquoi ne pas simplement fmt.Sprint(charge.Amount) ?

-1voto

ctcherry Points 15112

log.Printf

log.Printf("The amount is: %d\n", charge.Amount)

-4voto

Bill Zelenko Points 71

Si vous êtes venu ici pour savoir comment convertir une chaîne de caractères en uint64, voici comment faire :

newNumber, err := strconv.ParseUint("100", 10, 64)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X