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