8
fmt.Printf( “%d”,math.MaxUint64)
但我得到以下错误消息:
恒定18446744073709551615溢出诠释
我该如何解决这个问题?谢谢!
fmt.Printf( “%d”,math.MaxUint64)
但我得到以下错误消息:
恒定18446744073709551615溢出诠释
我该如何解决这个问题?谢谢!
math.MaxUint64
是一个常量,而不是一个int64。尝试改为:
fmt.Printf("%d", uint64(num))
这里的问题是该常量是无类型的。常量将根据使用它的上下文而采用一种类型。在这种情况下,它被用作接口{},因此编译器无法知道要使用的具体类型。对于整数常量,它默认为int
。由于你的常量溢出一个int,这是一个编译时错误。通过传递uint64(num)
,即表示您希望编译器将该值视为uint64
。
请注意,这个特定的常量只适用于uint64,有时也适用于uint。它甚至比标准的int64还要大。
在我看来,你试图在一个变量类型为“int”中存储过大的数字。改用'uint64'。 – 2013-05-10 03:47:57
我很抱歉,但是在写这个问题时我犯了一个错误。我更新了它以反映我的意思。 – abw333 2013-05-10 04:34:48