Rumah >pangkalan data >tutorial mysql >Mengapa Bahagian Integer Mengembalikan Sifar Daripada Nilai Perpuluhan?
Bahagian Integer dan Keputusan Sifar Tidak Dijangka
Kod contoh menghasilkan hasil sifar daripada operasi bahagi yang dijangkakan nilai perpuluhan (0.073667712). Ini kerana pembolehubah, secara lalai, dianggap sebagai integer. Pembahagian integer dalam banyak bahasa pengaturcaraan memotong (membuang) mana-mana bahagian pecahan hasil, meninggalkan hanya bahagian nombor bulat. Oleh itu, 47 dibahagikan dengan 638 menghasilkan sifar.
Penyelesaian: Menggunakan Jenis Data Titik Terapung
Untuk mendapatkan hasil perpuluhan yang betul, anda mesti menggunakan nombor titik terapung (seperti float
atau double
bergantung pada bahasa pengaturcaraan). Ini boleh dicapai dalam dua cara:
Isytiharkan Pembolehubah sebagai Terapung: Takrifkan @set1
dan @set2
sebagai jenis data titik terapung dari awal. Sintaks khusus bergantung pada bahasa pengaturcaraan anda.
Jenis Hantaran: Tukar pembolehubah integer kepada terapung secara eksplisit sebelum melaksanakan pembahagian menggunakan fungsi hantaran jenis (seperti CAST
dalam SQL atau fungsi serupa dalam bahasa lain). Contohnya:
<code class="language-sql">SET @weight = CAST(@set1 AS float) / CAST(@set2 AS float);</code>
Ini memastikan pembahagian dilakukan pada nombor titik terapung, mengekalkan bahagian perpuluhan dan menghasilkan hasil yang dijangkakan kira-kira 0.073667712.
Atas ialah kandungan terperinci Mengapa Bahagian Integer Mengembalikan Sifar Daripada Nilai Perpuluhan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!