Dalam perbincangan lain, pengguna menemui "ralat titik terapung" dalam kod C mereka walaupun integer bahagi-dengan-sifar menjadi isu sebenar. Ini mencetuskan perdebatan sama ada pengecualian titik terapung boleh timbul daripada operasi integer bahagi-dengan-sifar.
Secara tradisinya, integer bahagi-dengan-sifar telah dilihat sebagai menghasilkan pengecualian integer (#DE pada IA-32 dan AMD64), manakala pembahagian titik terapung dengan sifar mencetuskan pengecualian titik terapung (gangguan 16 atau 19). Walau bagaimanapun, sesetengah platform menyimpang daripada konvensyen ini.
Menurut piawai POSIX, operasi bahagi dengan sifar pada operan integer mesti menjana isyarat SIGFPE, petunjuk bagi pengecualian titik terapung. Ini bermakna bahawa pada sistem POSIX, pembahagian integer dengan sifar akan dilaporkan sebagai pengecualian titik terapung.
Bagi kebanyakan sistem Linux yang menggunakan Perpustakaan GNU C (glibc), SIGFPE menyediakan maklumat tambahan melalui medan si_code objek signfo_t. Untuk pembahagian integer-dengan-sifar, nilai medan ini ialah FPE_INTDIV_TRAP.
Maklumat tidak tersedia dengan mudah tentang cara Windows mengendalikan pengecualian integer bahagi-dengan-sifar. Ada kemungkinan bahawa Windows menggunakan jenis pengecualian yang berbeza atau membungkus pengecualian aritmetik yang berbeza ke dalam satu kategori yang serupa dengan Unix.
Berbeza dengan aritmetik integer, IEEE754 standard titik terapung mentakrifkan tingkah laku khusus untuk bahagi dengan sifar operasi:
Dalam kebanyakan sistem pengendalian dan C ABI, pengecualian titik terapung disembunyikan secara lalai untuk proses ruang pengguna. Ini membolehkan penyebaran nilai ralat (NaN dan Inf) melalui pengiraan tanpa menyebabkan perangkap.
Cadangan telah dibuat untuk bendera limpahan integer "melekit" kepada rekod limpahan semasa urutan pengiraan. Walau bagaimanapun, kaedah pengesanan limpahan integer berbeza-beza merentas seni bina, dengan x86 memerlukan cawangan bersyarat selepas setiap pengiraan dan MIPS menyediakan arahan khusus untuk memerangkap limpahan yang ditandatangani.
Tingkah laku integer divide-by- sifar dan pengendalian pengecualian titik terapung berbeza-beza merentas platform. Walaupun sesetengah sistem (seperti sistem POSIX) menganggap pembahagian integer-dengan-sifar sebagai pengecualian titik terapung, yang lain mungkin membezakannya. Adalah penting untuk mengetahui mekanisme pelaporan ralat khusus pada platform sasaran apabila menyahpepijat isu sedemikian.
Atas ialah kandungan terperinci Bolehkah Pembahagian Integer dengan Sifar Mencetuskan Pengecualian Titik Terapung?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!