Golang ialah bahasa pengaturcaraan sumber terbuka Tujuan asalnya adalah untuk meningkatkan kebolehbacaan dan kebolehselenggaraan program sambil mengekalkan kecekapan. Ia menyokong pengaturcaraan berorientasikan objek dan paradigma pengaturcaraan berfungsi, dan menyediakan perpustakaan yang berkuasa dan sokongan alat. Antaranya, operasi matematik merupakan salah satu fungsi asas dalam bahasa pengaturcaraan, dan operasi bahagi juga merupakan operasi yang sangat penting di Golang.
Walau bagaimanapun, anda mungkin menghadapi isu ketepatan perpuluhan semasa melakukan operasi bahagi di Golang. Sebagai contoh, jika kita ingin mengira nilai 9/4, kita biasanya mengharapkan untuk mendapatkan hasil 2.25. Tetapi di Golang, apabila kita menggunakan operator /
untuk mengira 9/4, kita mendapat 2, iaitu integer, bukan perpuluhan yang dijangkakan.
Punca masalah ini terletak pada perbezaan antara pembahagian integer dan pembahagian titik terapung di Golang. Di Golang, pembahagian integer hanya mengekalkan bahagian integer dan membuang bahagian perpuluhan manakala pembahagian titik terapung akan mengekalkan bahagian perpuluhan. Apabila kita mengira satu integer dibahagikan dengan integer lain, Golang akan melakukan pembahagian integer secara lalai. Jika kita mahu hasil pengiraan mengandungi bahagian perpuluhan, kita perlu menukar pembahagi atau dividen kepada nombor titik terapung.
Salah satu cara untuk menyelesaikan masalah ini ialah menukar pembahagi atau dividen kepada nombor titik terapung. Dalam Golang, kita boleh menukar integer kepada nombor titik terapung dan kemudian membahagikan nombor titik terapung dengan integer lain untuk mendapatkan keputusan dengan ketepatan perpuluhan yang lebih tinggi. Kod sampel adalah seperti berikut:
a := 9 b := 4 result := float64(a) / float64(b) fmt.Println(result)
Selepas menjalankan kod di atas, kita akan mendapat keputusan 2.25, iaitu sama seperti yang dijangkakan.
Cara lain untuk menyelesaikan masalah ini ialah dengan menggunakan pakej matematik yang disediakan oleh Golang. Banyak fungsi matematik disediakan dalam pakej matematik, termasuk fungsi pembahagian titik terapung. Jika kita perlu melakukan operasi pembahagian titik terapung yang tepat, kita boleh menggunakan fungsi yang berkaitan dalam pakej matematik. Kod sampel adalah seperti berikut:
a := 9.0 b := 4.0 result := a / b fmt.Println(result)
Dalam kod di atas, kami menggunakan pembahagi mata terapung dan dividen untuk mendapatkan hasil yang lebih tepat dengan menggunakan operasi pembahagian titik terapung.
Selain menukar integer kepada nombor titik terapung atau menggunakan pakej matematik untuk operasi titik terapung, pakej strconv di Golang juga menyediakan cara untuk menyelesaikan masalah ketepatan perpuluhan. Pakej ini menyediakan satu siri fungsi untuk menukar rentetan kepada nombor, termasuk fungsi untuk menukar rentetan kepada nombor titik terapung. Kita boleh menukar kedua-dua dividen dan pembahagi kepada jenis titik terapung dan menggunakan Atoi()
untuk menukar hasil pengiraan titik terapung kepada format rentetan untuk output. Kod sampel adalah seperti berikut:
a := "9" b := "4" aFloat, _ := strconv.ParseFloat(a, 64) bFloat, _ := strconv.ParseFloat(b, 64) result := aFloat / bFloat fmt.Println(strconv.FormatFloat(result, 'f', 2, 64))
Dalam kod di atas, kami menggunakan fungsi strconv.ParseFloat()
untuk menukar rentetan kepada nombor titik terapung dan menggunakan fungsi strconv.FormatFloat()
untuk menukar hasil pengiraan nombor titik terapung ke dalam rentetan untuk output. Antaranya, parameter pertama menunjukkan ketepatan nombor, dan parameter kedua menunjukkan kaedah pembundaran yang digunakan.
Secara umumnya, operasi pembahagian Golang memerlukan pembangun untuk memberi perhatian apabila menangani isu ketepatan perpuluhan. Adalah perlu untuk memilih penyelesaian yang sesuai mengikut senario yang berbeza untuk memastikan ketepatan dan ketepatan program. Pada masa yang sama, semasa menjalankan operasi pengiraan data, pengendalian isu ketepatan perpuluhan yang munasabah juga merupakan cara penting untuk mengoptimumkan prestasi program.
Atas ialah kandungan terperinci perpuluhan pembahagian golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!