Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Membundarkan Nombor Titik Terapung dengan Tepat kepada Dua Tempat Perpuluhan dalam Python?

Bagaimanakah Saya Boleh Membundarkan Nombor Titik Terapung dengan Tepat kepada Dua Tempat Perpuluhan dalam Python?

Linda Hamilton
Linda Hamiltonasal
2024-12-20 05:00:19127semak imbas

How Can I Accurately Round Floating-Point Numbers to Two Decimal Places in Python?

Menghadkan Terapung kepada Dua Titik Perpuluhan

Apabila bekerja dengan nombor titik terapung, adalah penting untuk mempertimbangkan pengehadan jenis data ini. Khususnya, nombor titik terapung mungkin tidak mewakili nilai tertentu dengan tepat, membawa kepada hasil yang tidak dijangka apabila cuba membundar.

Isu: Apabila cuba membundarkan apungan kepada dua tempat perpuluhan, anda boleh menghadapi isu berikut:

>>> a
13.949999999999999
>>> round(a, 2)
13.949999999999999

Masalah timbul kerana nombor titik terapung menyimpan nilai sebagai integer dibahagikan dengan kuasa dua. Perwakilan ini mungkin tidak menangkap semua nilai dengan tepat. Dalam kes nombor berketepatan dua kali (digunakan oleh jenis titik terapung Python), mereka mempunyai ketepatan 53 bit (16 digit), manakala terapung biasa mempunyai 24 bit (8 digit).

Penyelesaian:

Untuk memaparkan hanya dua tempat perpuluhan apabila membundarkan apungan, beberapa pilihan adalah tersedia:

  • Gunakan integer dan simpan nilai dalam sen: Daripada menyimpan dolar, simpan nilai dalam sen dan bahagikan dengan 100 untuk menukar kepada dolar.
  • Gunakan perpustakaan nombor titik tetap seperti perpuluhan: Nombor titik tetap memberikan kawalan yang lebih tepat ke atas bilangan tempat perpuluhan.

Contoh:

>>> a = 13.946
>>> print("%.2f" % a)
13.95
>>> print("{:.2f}".format(a))
13.95

Perhatikan bahawa menggunakan bulat(a, 2) secara langsung masih akan menghasilkan ketepatan titik terapung isu, tetapi memformatkan nilai sebagai rentetan dengan %.2f atau {:.2f} akan menghasilkan perwakilan dua tempat perpuluhan yang diingini.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membundarkan Nombor Titik Terapung dengan Tepat kepada Dua Tempat Perpuluhan dalam Python?. 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