回答

收藏

如何将 uint64 转换为字符串

技术问答 技术问答 380 人阅读 | 0 人回复 | 2023-09-11

我正着用我用的方法打印它string,uint但是没有效果strconv方法组合。
6 v/ P, b* X; D4 }) f* R2 t$ K& V
    log.Println("The amount is: "   strconv.Itoa((charge.Amount))): y7 M. q+ k. N& N3 @8 `5 X1 [
给我:
' _1 J7 \; W# S; a% Ecannot use charge.Amount (type uint64) as type int in argument to strconv.Itoa我怎样才能打印这个?string?
6 s1 S+ j" b3 [& W) q8 [                                                                3 ]. g- @# }6 v( r0 H0 E
    解决方案:                                                                3 F3 T  l+ _' B. @# t+ j/ j
                                                                strconv.Itoa()需要一个 type 值int,所以你必须给它:0 E3 M/ y4 w3 m! B
    log.Println("The amount is: "   strconv.Itoa(int(charge.Amount)))- Q2 @5 E" t+ x+ T# O# M4 D
但要知道,如果int是 32 位(和uint6464位),这可能会失去精度,符号也一样。strconv.FormatUint()会更好,因为它需要一种值uint64:
: a' n5 _2 ]+ R& F! v0 e& T
    log.Println("The amount is: "   strconv.FormatUint(charge.Amount,10))
    - ^  h" q, P9 u9 i1 R2 D
如果您的目的只是打印值,则无需将其转换为 toint或 to string,请使用以下一种:% u% ]( d, r9 w3 L/ t
    log.Println("The amount is:",charge.Amount)log.Printf("The amount is: %d\n",charge.Amount)1 m/ @( s5 @; }' x9 I" Z) W: A& w
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则