回答

收藏

如何将 uint64 转换为字符串

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

我正着用我用的方法打印它string,uint但是没有效果strconv方法组合。# D- L0 Q0 s% t& r1 `
    log.Println("The amount is: "   strconv.Itoa((charge.Amount)))
    ' R  T2 ]9 H( }: h
给我:
0 z* r# v" e# Acannot use charge.Amount (type uint64) as type int in argument to strconv.Itoa我怎样才能打印这个?string?' T' |/ x8 D8 `* b5 H
                                                                * I7 g1 @8 }/ i8 n
    解决方案:                                                               
/ o0 P' B$ u& H% D2 ?2 g- F                                                                strconv.Itoa()需要一个 type 值int,所以你必须给它:/ M/ k8 l4 U" W8 \" s% S* o4 O: Y
    log.Println("The amount is: "   strconv.Itoa(int(charge.Amount)))
    + i0 q0 |1 i2 W( t( W- i; J
但要知道,如果int是 32 位(和uint6464位),这可能会失去精度,符号也一样。strconv.FormatUint()会更好,因为它需要一种值uint64:$ {3 a) F! Y3 P+ L: E
    log.Println("The amount is: "   strconv.FormatUint(charge.Amount,10))
    3 d* N# y* e! i3 O4 w- l- B. H
如果您的目的只是打印值,则无需将其转换为 toint或 to string,请使用以下一种:+ A# B4 V; i  i: H/ W5 D% }0 V
    log.Println("The amount is:",charge.Amount)log.Printf("The amount is: %d\n",charge.Amount)2 x6 T& Y2 W4 }& @" a0 {3 `
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则