Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Fungsi `round()` Python 3 Berbeza daripada Versi Sebelumnya, dan Mengapa?

Bagaimanakah Fungsi `round()` Python 3 Berbeza daripada Versi Sebelumnya, dan Mengapa?

Susan Sarandon
Susan Sarandonasal
2024-12-15 18:33:11220semak imbas

How Does Python 3's `round()` Function Differ from Previous Versions, and Why?

Gelagat Pembundaran Python 3.0

Python 3.0 telah memperkenalkan perubahan ketara pada strategi pembundaran dan jenis pulangan fungsi round(). Dalam Python 2, round(2.5) mengembalikan 3, manakala dalam Python 3, ia mengembalikan 2. Begitu juga, round(3.5) mengembalikan 4 dalam kedua-dua versi.

Perubahan ini telah dibuat untuk menerima pakai "separuh pusingan kepada teknik genap" atau "pembundaran bank". Pembundaran dalam Python 3 kini selaras dengan piawai IEEE 754 untuk matematik titik terapung, yang mentakrifkan lima kaedah pembundaran yang berbeza.

Rasional untuk Perubahan

Pembundaran sebelumnya tingkah laku ("sentiasa bulatkan 0.5 ke atas") boleh menyebabkan sedikit berat sebelah terhadap nombor yang lebih besar apabila melakukan banyak pengiraan. Pendekatan Python 3 menghapuskan berat sebelah ini.

Bahasa Pengaturcaraan Lain dengan Pembundaran Banker

Python 3 bukan satu-satunya bahasa pengaturcaraan yang menggunakan pembulatan jurubank. Bahasa arus perdana lain seperti C , Java dan AppleScript juga melaksanakan kaedah ini.

Implikasi untuk Andaian Terdahulu

Pemahaman konvensional tentang pembundaran mungkin tidak sejajar dengan tingkah laku semasa of round() dalam Python 3. Ini boleh membawa kepada keputusan yang tidak dijangka apabila bergantung pada andaian sebelumnya tentang pembundaran.

Adalah penting untuk ambil perhatian bahawa terdapat kaedah pembundaran lain yang wujud dan bahasa pengaturcaraan yang berbeza mungkin melaksanakan teknik yang berbeza. Apabila bekerja dengan nombor titik terapung, adalah penting untuk mengetahui algoritma pembundaran khusus yang digunakan untuk mengelakkan hasil yang tidak dijangka.

Atas ialah kandungan terperinci Bagaimanakah Fungsi `round()` Python 3 Berbeza daripada Versi Sebelumnya, dan Mengapa?. 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