Rumah >pembangunan bahagian belakang >Tutorial Python >Keputusan Tidak Dijangka dalam Bahagian Integer: Mengapa 8/-7 = -2?

Keputusan Tidak Dijangka dalam Bahagian Integer: Mengapa 8/-7 = -2?

Susan Sarandon
Susan Sarandonasal
2024-10-24 11:55:02761semak imbas

Unexpected Results in Integer Division: Why is 8/-7 = -2?

Kejutan Pembahagian Integer

Apabila bekerja dengan integer, anda mungkin menghadapi keputusan yang tidak dijangka semasa melakukan pembahagian. Sebagai contoh, 8/-7 sama dengan -2 apabila kedua-dua nombor dianggap sebagai integer. Ini boleh mengelirukan, jadi mari kita terokai apa yang berlaku.

Penjelasan

Bahagian integer dalam Python 2, versi yang anda nampaknya sedang gunakan, mengikut konvensyen yang dikenali sebagai " pembahagian lantai." Ini bermakna keputusan dibundarkan ke bawah kepada integer terdekat. Dalam kes ini, -1.143 (hasil sebenar 8.0/(-7.0)) dibundarkan ke bawah kepada -2.

Tingkah laku ini membawa kepada hasil yang menarik:

  • 8/(-7) = -2: Bundarkan ke bawah kepada nilai yang lebih negatif
  • 8/7 = 1: Bundarkan ke bawah kepada integer terkecil terdekat

Python 3 and Beyond

Dalam Python 3, pembahagian integer telah berubah. Daripada membundarkan ke bawah, ia memberikan hasil titik terapung. Contohnya, 8/(-7) dalam Python 3 ialah -1.143.

Jika anda masih memerlukan pembahagian integer, Python 3 menawarkan operator "//". Ini berkelakuan sama dengan pembahagian integer dalam Python 2, membundarkan ke bawah kepada integer terdekat.

"Membetulkan" Kejutan

Kejutan yang jelas dalam hasil pembahagian integer boleh "diperbaiki" dengan menaik taraf kepada Python 3. Ini akan menghasilkan hasil titik terapung, yang lebih mewakili operasi matematik sebenar. Sebagai alternatif, anda boleh menggunakan operator "//" dalam Python 3 untuk mencapai kelakuan yang sama seperti pembahagian integer dalam Python 2.

Atas ialah kandungan terperinci Keputusan Tidak Dijangka dalam Bahagian Integer: Mengapa 8/-7 = -2?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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