首頁 > 後端開發 > Golang > 為什麼 Go 的整數除法結果是 0 而不是浮點數?

為什麼 Go 的整數除法結果是 0 而不是浮點數?

Mary-Kate Olsen
發布: 2024-12-14 16:37:11
原創
750 人瀏覽過

Why Does Go's Division of Integers Result in 0 Instead of a Floating-Point Number?

Go 中的浮點除法

儘管除法看起來很簡單,但在Go 中實現此操作可能會遇到意想不到的結果。如提供的範例所示:

fmt.Println(3/10)
登入後複製

此程式碼片段令人驚訝地產生「0」而不是預期的「0.3」。要理解這種行為,深入研究 Go 類型系統的複雜性至關重要。

在 Go 中,除法運算子的運算元是無型別常數,這表示它們的資料型別沒有明確指定。根據Go規範,當處理無類型常數的二元運算時,結果的資料類型由所涉及類型的優先順序決定。在這種情況下,兩個操作數都是整數,從而產生一個值為“0”的無類型整數表達式。

要得到浮點常數結果,其中一個運算元必須明確鍵入為浮點數。以下是一些示範這一點的範例:

3.0 / 10.0
3.0 / 10
3 / 10.0
登入後複製

在這些表達式中,浮點常數(例如「3.0」)確保結果也是值為「0.3」的浮點常數".

或者,如果一個運算元是類型化變量,則以類型化變數的資料型別為準。值並產生“0.3”:

var i3 = 3
var i10 = 10
fmt.Println(float64(i3) / 10)
fmt.Println(3 / float64(i10))
登入後複製

以上是為什麼 Go 的整數除法結果是 0 而不是浮點數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板