Rumah >pembangunan bahagian belakang >Golang >Mengapa Go Division Mengembalikan 0 Daripada 0.3?
Bahagian dalam Go: Memahami Misteri 0.3
Apabila melakukan operasi bahagi dalam Go, anda mungkin menghadapi hasil yang tidak dijangka iaitu 0 dan bukannya jangkaan 0.3. Tingkah laku pelik ini timbul kerana penggunaan pemalar yang tidak ditaip dalam operasi.
Dalam Go, operan operasi binari pada mulanya dianggap sebagai pemalar yang tidak ditaip. Jenis operasi yang terhasil ditentukan oleh operan menggunakan susunan keutamaan tertentu. Untuk pemalar integer seperti 3 dan 10, hasilnya ialah integer yang tidak ditaip, oleh itu 0.
Untuk mendapatkan hasil titik terapung, seseorang mesti memastikan bahawa sekurang-kurangnya satu operan ialah pemalar titik terapung. Dengan menggunakan penukaran jenis eksplisit, seperti yang dilihat dalam ungkapan di bawah, anda boleh mencapai ketepatan yang diingini:
Sebagai alternatif, anda boleh menukar integer operan kepada float64 secara eksplisit:
Pengubahsuaian ini memaksa operasi menggunakan terapung- aritmetik titik, menghasilkan hasil yang dimaksudkan daripada 0.3.
Oleh itu, apabila melakukan operasi aritmetik dalam Go, berhati-hati dengan jenis pemalar yang digunakan. Untuk mengelakkan isu khusus dengan pembahagian ini, pastikan bahawa operan anda sama ada pemalar titik terapung eksplisit atau menjalani penukaran jenis eksplisit kepada float64.
Atas ialah kandungan terperinci Mengapa Go Division Mengembalikan 0 Daripada 0.3?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!