Pembahagian integer dalam pengaturcaraan boleh membawa kepada keputusan yang mengejutkan. Pertimbangkan contoh ini:
<code>PRINT @set1 PRINT @set2 SET @weight= @set1 / @set2; PRINT @weight</code>
Menggunakan set1 = 47
dan set2 = 638
, hasil yang dijangkakan ialah 0.073667712
. Sebaliknya, outputnya ialah 0
. Ini berlaku kerana, secara lalai, banyak bahasa pengaturcaraan melakukan pembahagian integer apabila kedua-dua operan adalah integer. Pembahagian integer membuang bahagian pecahan, mengakibatkan pemotongan.
Untuk mencapai pembahagian titik terapung yang dijangkakan, gunakan salah satu kaedah ini:
set1
dan set2
sebagai nombor titik terapung dari awal:<code>DECLARE @set1 FLOAT, @set2 FLOAT; SET @weight= @set1 / @set2;</code>
set1
dan set2
kepada terapung semasa pembahagian:<code>SET @weight= CAST(@set1 AS FLOAT) / CAST(@set2 AS FLOAT);</code>
Mana-mana kaedah memastikan pembahagian titik terapung yang tepat dan menghalang kehilangan ketepatan yang disebabkan oleh pemotongan integer. Ini menghasilkan hasil perpuluhan yang betul untuk pengiraan yang memerlukan nilai pecahan.
Atas ialah kandungan terperinci Mengapa Bahagian Integer Menghasilkan Keputusan Yang Tidak Dijangka dalam Pengaturcaraan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!