How to Convert Uint64 to String

How to Convert Uint64 to String

I am trying to print a string with a uint64 but no combination of strconv methods that I use is working.

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

Gives me:

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

How can I print this string?

6 Answers

strconv.Itoa() expects a value of type int, so you have to give it that:

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

But know that this may lose precision if int is 32-bit (while uint64 is 64), also sign-ness is different. strconv.FormatUint() would be better as that expects a value of type uint64:

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

For more options, see this answer: Golang: format a string without printing?

If your purpose is to just print the value, you don't need to convert it, neither to int nor to string, use one of these:

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

if you want to convert int64 to string, you can use :

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

or

strconv.FormatUint
0

If you actually want to keep it in a string you can use one of Sprint functions. For instance:

myString := fmt.Sprintf("%v", charge.Amount)
1
func main() {
    var a uint64
    a = 3
    var s string
    s = fmt.Sprint(a)
    fmt.Printf("%s", s)
}

log.Printf

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

If you came here looking on how to covert string to uint64, this is how its done:

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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Maya Lin-Takahashi
Author

Maya Lin-Takahashi

Maya is a hardware enthusiast who tests and reviews smart home devices, smartphones, wearables, and audio gear. She focuses on practical consumer value and build quality.