Rumah > pangkalan data > tutorial mysql > Mengapa Pengiraan Bahagian Saya Mengembalikan Sifar Daripada Nilai Perpuluhan?

Mengapa Pengiraan Bahagian Saya Mengembalikan Sifar Daripada Nilai Perpuluhan?

DDD
Lepaskan: 2025-01-20 17:37:08
asal
928 orang telah melayarinya

Why Does My Division Calculation Return Zero Instead of a Decimal Value?

Menyelesaikan Masalah Keputusan Sifar daripada Bahagian Integer dalam Pengaturcaraan

Pengaturcaraan selalunya melibatkan operasi matematik, dan pembahagian tidak terkecuali. Hasil yang tidak dijangka, bagaimanapun, boleh menjadi masalah. Artikel ini memfokuskan pada isu biasa: operasi pembahagian mengembalikan sifar apabila keputusan bukan sifar dijangka.

Pertimbangkan senario di mana matlamatnya adalah untuk membahagikan nilai integer yang disimpan dalam pembolehubah @set1 dan @set2, menyimpan hasil dalam @weight. Kod secara tidak dijangka menghasilkan 0.

Punca utama terletak pada sifat pembolehubah: kedua-dua @set1 dan @set2 ialah integer. Ini menunjukkan kepada konsep kritikal pembahagian integer.

Pembahagian integer, tidak seperti pembahagian titik terapung, melakukan pembahagian pada dua integer dan hanya mengembalikan hasil bagi nombor bulat. Sebarang baki pecahan dipotong (dibuang).

Jika @set1 ialah 47 dan @set2 ialah 638, pembahagian integer menghasilkan 47 ÷ 638 = 0. Ini menerangkan keluaran sifar.

Untuk menyelesaikan masalah ini dan mendapatkan hasil perpuluhan yang betul (kira-kira 0.073667712), tukarkan @set1 dan @set2 kepada nombor titik terapung (terapung) secara eksplisit sebelum pembahagian. Terapung boleh mengendalikan bahagian pecahan.

Penyelesaian melibatkan pelarasan kod mudah ini:

<code class="language-sql">SET @weight = CAST(@set1 AS FLOAT) / CAST(@set2 AS FLOAT);</code>
Salin selepas log masuk

Ringkasnya, memahami tingkah laku pembahagian integer adalah kunci kepada pengaturcaraan yang tepat. Menukar integer kepada terapung memastikan pengiraan yang tepat dan mengelakkan hasil sifar yang salah.

Atas ialah kandungan terperinci Mengapa Pengiraan Bahagian Saya Mengembalikan Sifar Daripada Nilai 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