Go 中是否有一個標準型別可以進行「精確除法」?這是一個常見的問題,讓我們來解答一下。在 Go 中,沒有一個標準類型可以進行“精確除法”,這是因為 Go 中的整數類型是固定精度的,無法表示無限精度的小數。然而,Go 提供了一種解決方案,即使用浮點數類型進行除法運算。浮點數類型在 Go 中包括 float32 和 float64,它們可以表示較大範圍的數字,但由於浮點數的特性,可能存在精度損失的問題。因此,如果需要進行精確除法,建議使用大數庫(如 math/big 套件)來處理。這樣可以確保在進行除法運算時,得到精確的結果。
我想在go中做一些「精確除法」。有標準類型嗎?
例如,我想儲存值“1/3”和“2/3”並能夠將它們相加。
我可以這樣定義自己的類型:
type mytype struct { numerator int denominator int }
並定義如下函數:
func (a MyType) Plus(b MyType) MyType { d := a.Denominator * b.Denominator n := (a.Numerator * b.Denominator) + (b.Numerator * a.Denominator) return MyType{Numerator: n, Denominator: d} }
但可能有一種更優雅的方法來做到這一點,或者已經做到了這一點的「標準類型」。
我不知道 big.Rat
。這就是我所需要的!謝謝您的幫忙
以上是Go 中是否有一個標準型別可以進行「精確除法」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!