Rumah > pangkalan data > tutorial mysql > Mengapa Bahagian Integer Menghasilkan Keputusan Yang Tidak Dijangka dalam Pengaturcaraan?

Mengapa Bahagian Integer Menghasilkan Keputusan Yang Tidak Dijangka dalam Pengaturcaraan?

Barbara Streisand
Lepaskan: 2025-01-20 17:38:09
asal
781 orang telah melayarinya

Why Does Integer Division Produce Unexpected Results in Programming?

Hasil Tidak Dijangka dalam Bahagian Pengaturcaraan

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

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:

  1. Isytiharkan pembolehubah sebagai terapung: Takrifkan set1 dan set2 sebagai nombor titik terapung dari awal:
<code>DECLARE @set1 FLOAT, @set2 FLOAT;

SET @weight= @set1 / @set2;</code>
Salin selepas log masuk
  1. Pemutus jenis eksplisit: Tukar set1 dan set2 kepada terapung semasa pembahagian:
<code>SET @weight= CAST(@set1 AS FLOAT) / CAST(@set2 AS FLOAT);</code>
Salin selepas log masuk

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!

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