首頁 > 後端開發 > Golang > 為什麼 Go 除法回傳 0 而不是 0.3?

為什麼 Go 除法回傳 0 而不是 0.3?

Mary-Kate Olsen
發布: 2024-12-04 14:00:13
原創
703 人瀏覽過

Why Does Go Division Return 0 Instead of 0.3?

Go 中的除法:理解0.3 之謎

在Go 中執行除法運算時,你可能會遇到意想不到的結果0 而不是0預期0.3。這種奇怪的行為是由於在運算中使用無類型常數而產生的。

在 Go 中,二元運算的運算元最初被視為無型別常數。操作的結果類型由操作數使用特定的優先順序決定。對於像 3 和 10 這樣的整數常數,結果是無型別整數,即 0。

要得到浮點結果,必須確保至少一個運算元是浮點常數。透過使用明確型別轉換,如下面的表達式所示,您可以達到所需的精確度:

  • 3.0 / 10.0
  • 3.0 / 10
  • 3 / 10.0

或者,您可以將整數運算元轉換為float64 明確:
  • float64(i3) / 10
  • 3 / float64(i10)

這些修改強制操作使用浮點運算,產生預期結果 0.3。

因此,在執行算術運算時在 Go 中,請注意所使用的常數的類型。為了避免除法的這個特定問題,請確保您的操作數是明確浮點常數或經過明確類型轉換為 float64。

以上是為什麼 Go 除法回傳 0 而不是 0.3?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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