Rumah > pangkalan data > tutorial mysql > Mengapa Pembahagian Integer dalam SQL Mengembalikan 0 Daripada Nilai Perpuluhan?

Mengapa Pembahagian Integer dalam SQL Mengembalikan 0 Daripada Nilai Perpuluhan?

Linda Hamilton
Lepaskan: 2025-01-20 17:26:10
asal
638 orang telah melayarinya

Why Does Integer Division in SQL Return 0 Instead of a Decimal Value?

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>
Salin selepas log masuk

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!

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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan