Menguji Kesetaraan Terapung Nombor Bulat dalam Go
Apabila bekerja dengan nombor titik terapung dalam Go, mungkin perlu untuk menentukan sama ada sesuatu yang diberikan nilai apungan mewakili nombor bulat. Walaupun cuba menggunakan operator modulo (%) mungkin kelihatan seperti pendekatan yang mudah, adalah penting untuk ambil perhatian bahawa operator ini tidak ditakrifkan untuk nilai float64.
Menggunakan Penukaran Integer
Satu pendekatan untuk menguji kesamaan apungan nombor bulat ialah membandingkan nilai apungan kepada nilai integer yang ditukar. Jika nilai apungan dan nilai integer yang ditukar adalah sama, maka apungan itu dianggap sebagai nombor bulat. Ini boleh dicapai menggunakan sintaks berikut:
if a == float64(int64(a)) { // a is a whole number }
Menggunakan matematik.Trunc Function
Untuk kes di mana nilai apungan mungkin melebihi julat int64, pendekatan alternatif ialah menggunakan fungsi math.Trunc. Fungsi ini memotong bahagian pecahan nombor apungan, mengembalikan nilai integer. Dengan membandingkan nilai apungan asal kepada nilai terpenggalnya, adalah mungkin untuk menentukan sama ada apungan ialah nombor bulat:
if a == math.Trunc(a) { // a is a whole number }
Contoh
Kod Go berikut menunjukkan penggunaan matematik.Fungsi Trunc untuk menentukan dengan betul sama ada nilai apungan mewakili nombor bulat:
package main import ( "fmt" "math" ) func main() { var a float64 = 2.00 if a == math.Trunc(a) { fmt.Println("yay") } else { fmt.Println("you fail") } }
Dalam ini contoh, nilai apungan 2.00 diuji dan output akan menjadi "yay" kerana 2.00 ialah nombor bulat.
Atas ialah kandungan terperinci Bagaimana untuk Memeriksa dengan Cekap sama ada Go Float64 Mewakili Nombor Bulat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!