如何将 uint64 转换为字符串

新手上路,请多包涵

我正在尝试打印 stringuint64 但没有组合 strconv 我使用的方法有效。

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

给我:

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

我怎样才能打印这个 string

原文由 Anthony 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 856
2 个回答

strconv.Itoa() 需要一个类型为 int 的值,所以你必须给它:

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

但是要知道,如果 int 是 32 位(而 uint64 是 64),这可能会失去精度,符号也不同。 strconv.FormatUint() 会更好,因为它期望类型为 uint64 的值:

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

有关更多选项,请参阅此答案: Golang: format a string without printing?

如果您的目的只是打印该值,则不需要将其转换为 intstring ,使用以下之一:

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

原文由 icza 发布,翻译遵循 CC BY-SA 3.0 许可协议

如果你想转换 int64string ,你可以使用:

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

或者

strconv.FormatUint

原文由 lingwei64 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题