Rumah >pembangunan bahagian belakang >Tutorial Python >Mengapa Pembahagian Integer dalam Python Kadang-kadang Menghasilkan Keputusan Bulat Yang Tidak Dijangka?

Mengapa Pembahagian Integer dalam Python Kadang-kadang Menghasilkan Keputusan Bulat Yang Tidak Dijangka?

Linda Hamilton
Linda Hamiltonasal
2024-12-19 00:22:11744semak imbas

Why Does Integer Division in Python Sometimes Produce Unexpected Rounded Results?

Bahagian Integer dalam Python: Membongkar Misteri Keputusan Bulat

Dalam Python, operasi pembahagian kadangkala boleh menghasilkan hasil yang tidak dijangka, terutamanya apabila operan ialah integer. Untuk memahami tingkah laku ini, kita mesti menyelidiki nuansa pembahagian integer Python.

Apabila dua integer dibahagikan, hasilnya juga merupakan integer. Tingkah laku ini timbul daripada pelaksanaan pembahagian Python 2.x, di mana operan dipotong sebelum operasi dilakukan. Pertimbangkan contoh:

>>> (20-10) / (100-10)
0

Di sini, operan menilai masing-masing kepada 10 dan 90. Oleh kerana kedua-duanya adalah integer, hasilnya juga dipotong kepada 0. Ini kerana operator bahagi (/) dalam Python 2.x sentiasa menghasilkan integer.

Untuk menyelesaikan isu ini, seseorang boleh menguatkuasakan pembahagian apungan dengan menghantar salah satu operan ke apungan:

>>> (20-10) / float((100-10))
0.1111111111111111

Sebagai alternatif, anda boleh mengimport modul pembahagian daripada __future__:

>>> from __future__ import division
>>> (10 - 20) / (100 - 10)
-0.1111111111111111

Ini memastikan pembahagian sentiasa mengembalikan apungan, tanpa mengira jenis operan. Dengan memahami kehalusan ini, anda boleh mengelakkan ralat pembundaran yang tidak dijangka dalam kod Python anda.

Atas ialah kandungan terperinci Mengapa Pembahagian Integer dalam Python Kadang-kadang Menghasilkan Keputusan Bulat Yang Tidak Dijangka?. 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