Rumah > pembangunan bahagian belakang > Golang > Mengapakah Operasi Pembahagian Go (/) Kadangkala Mengembalikan 0 Daripada Perpuluhan?

Mengapakah Operasi Pembahagian Go (/) Kadangkala Mengembalikan 0 Daripada Perpuluhan?

DDD
Lepaskan: 2024-12-11 15:17:09
asal
328 orang telah melayarinya

Why Does Go's Division Operation (/) Sometimes Return 0 Instead of a Decimal?

Operasi Pembahagian dalam Go

Dalam Go, operasi bahagi (/) dilakukan secara berbeza bergantung pada jenis operannya. Untuk memahami sebab ungkapan fmt.Println(3 / 10) menghasilkan 0 dan bukannya 0.3, mari kita mendalami sistem jenis Go.

Operan dalam ungkapan ini ialah pemalar integer yang tidak ditaip dan mengikut Go spesifikasi bahasa, hasil operasi aritmetik dengan pemalar yang tidak ditaip ditentukan oleh susunan jenis-jenis tersebut muncul. Pemalar integer mendahului pemalar titik terapung, jadi ungkapan dinilai sebagai pembahagian integer, menghasilkan 0.

Untuk mendapatkan hasil titik terapung, sekurang-kurangnya satu daripada operan mestilah pemalar titik terapung. Untuk mencapai ini, seseorang boleh menulis 3.0 / 10.0, 3.0 / 10, atau 3 / 10.0. Dua ungkapan pertama menggunakan pemalar titik terapung yang tidak ditaip, manakala ungkapan terakhir menukar pemalar integer 3 kepada float64.

Selain itu, apabila satu operan mempunyai pemalar yang tidak ditaip dan satu lagi ialah operan bertaip, jenis ungkapan ditentukan oleh operan yang ditaip. Oleh itu, var i3 = 3 dan var i10 = 10 boleh ditukar kepada float64 menggunakan fmt.Println(float64(i3) / float64(i10)).

Perhatikan bahawa literal angka seperti 10.0 adalah pemalar titik terapung yang tidak ditaip , dan ungkapan seperti i3 / 10.0 dan 3.0 / i10 masih akan dinilai kepada pembahagian integer kerana operan yang ditaip (i3 dan i10) yang menentukan jenis hasil.

Atas ialah kandungan terperinci Mengapakah Operasi Pembahagian Go (/) Kadangkala Mengembalikan 0 Daripada Perpuluhan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan