Adakah terdapat jenis standard dalam Go yang boleh melakukan "pembahagian tepat"? Ini soalan biasa, jom jawab. Dalam Go, tiada jenis standard yang boleh melakukan "pembahagian tepat" kerana jenis integer dalam Go ialah ketepatan tetap dan tidak boleh mewakili perpuluhan ketepatan tak terhingga. Walau bagaimanapun, Go menyediakan penyelesaian dengan menggunakan jenis titik terapung untuk operasi pembahagian. Jenis nombor titik terapung dalam Go termasuk float32 dan float64, yang boleh mewakili julat nombor yang lebih besar, tetapi disebabkan ciri nombor titik terapung, mungkin terdapat kehilangan ketepatan. Oleh itu, jika pembahagian yang tepat diperlukan, adalah disyorkan untuk menggunakan perpustakaan nombor yang besar (seperti matematik/pakej besar) untuk mengendalikannya. Ini memastikan keputusan yang tepat semasa melakukan operasi pembahagian.
Saya mahu melakukan beberapa "pembahagian yang tepat" dalam perjalanan. Adakah terdapat jenis standard?
Sebagai contoh, saya ingin menyimpan nilai "1/3" dan "2/3" dan boleh menambahkannya.
Saya boleh menentukan jenis saya sendiri seperti ini:
type mytype struct { numerator int denominator int }
Dan takrifkan fungsi berikut:
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} }
Tetapi mungkin terdapat cara yang lebih elegan untuk melakukan ini, atau "jenis standard" yang sudah melakukannya.
Saya tidak tahu big.Rat
. Itu sahaja yang saya perlukan! Terima kasih atas bantuan anda
Atas ialah kandungan terperinci Adakah terdapat jenis standard dalam Go yang boleh melakukan 'pembahagian tepat'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!