Rumah > pembangunan bahagian belakang > Tutorial Python > Mengapa Nombor Titik Terapung dalam Python Menyebabkan Ralat Pembundaran dan Bagaimana Ia Boleh Diatasi?

Mengapa Nombor Titik Terapung dalam Python Menyebabkan Ralat Pembundaran dan Bagaimana Ia Boleh Diatasi?

Susan Sarandon
Lepaskan: 2024-12-02 21:09:28
asal
865 orang telah melayarinya

Why Do Floating-Point Numbers in Python Cause Rounding Errors and How Can They Be Addressed?

Ralat Pembundaran Python dengan Nombor Titik Terapung

Apabila bekerja dengan nombor titik terapung dalam Python, adalah penting untuk mengetahui potensi untuk ralat pembundaran. Ralat ini timbul kerana nombor titik terapung hanya boleh menganggarkan nombor nyata dan nilai tertentu mungkin diwakili secara berbeza bergantung pada kedekatannya dengan kuasa tepat dua.

Sebagai contoh, pertimbangkan coretan kod:

for i_delta in range(0, 101, 1):
  delta = float(i_delta) / 100
  (...)
  filename = 'foo' + str(int(delta * 100)) + '.dat'
Salin selepas log masuk

Dalam kod ini, nilai delta berikut akan menghasilkan yang sama fail:

  • delta = 0.29 dan delta = 0.28999999999999998
  • delta = 0.58 dan delta = 0.579999999999999998
delta = 0.58 dan delta = 0.57999999999999996

import sys

n = int(sys.argv[1])

for i in range(0, n + 1):
  a = int(100 * (float(i) / 100))
  if i != a: print i, a
Salin selepas log masuk
Adalah penting untuk ambil perhatian bahawa ralat pembundaran ini tidak sistematik dan tidak menjejaskan setiap integer. Untuk mendapatkan cerapan lanjut tentang ralat ini, pertimbangkan kod berikut:

Apabila dijalankan, kod ini akan mengeluarkan pasangan nombor yang ralat pembundaran berlaku. Dengan menganalisis pasangan ini, adalah mungkin untuk mengenal pasti bahawa ralat cenderung berlaku untuk nombor yang tidak boleh diwakili sebagai kuasa tepat dua.Untuk menangani isu ini, adalah disyorkan untuk menggunakan aritmetik tepat jika boleh dan perlu sedar had dan ralat pembundaran yang berkaitan dengan nombor titik terapung. Untuk bacaan lanjut, rujuk artikel "Apa Yang Setiap Ahli Sains Komputer Patut Tahu Mengenai Aritmetik Titik Terapung" untuk panduan komprehensif untuk topik yang rumit ini.

Atas ialah kandungan terperinci Mengapa Nombor Titik Terapung dalam Python Menyebabkan Ralat Pembundaran dan Bagaimana Ia Boleh Diatasi?. 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