Memahami Mengapa Bahagian Integer SQL Mengembalikan Sifar
Keputusan sifar yang tidak dijangka daripada operasi bahagian SQL boleh mengelirukan. Artikel ini menangani situasi di mana membahagikan dua pembolehubah berangka (@set1 dan @set2) menghasilkan 0 dan bukannya 0.073667712 yang dijangkakan.
Masalahnya berpunca daripada jenis data pembolehubah. Pembolehubah SQL biasanya integer atau rentetan. Apabila @set1 (47) dan @set2 (638) dianggap sebagai integer, pembahagian integer berlaku, menghasilkan 0. Untuk mendapatkan hasil perpuluhan yang betul, hantar pembolehubah ini secara eksplisit ke nombor titik terapung sebelum pengiraan.
Penyelesaian menggunakan fungsi CAST
untuk menukar pembolehubah kepada terapung:
<code class="language-sql">SET @weight = CAST(@set1 AS FLOAT) / CAST(@set2 AS FLOAT);</code>
Menghantar @set1 dan @set2 sebagai FLOAT
memastikan pembahagian titik terapung, menghasilkan nilai perpuluhan tepat 0.073667712. Perubahan mudah ini menjamin hasil matematik yang betul.
Atas ialah kandungan terperinci Mengapa Pembahagian Integer dalam SQL Mengembalikan 0 Daripada Nilai Perpuluhan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!