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
Lepaskan: 2024-12-20 05:00:19
asal
130 orang telah melayarinya

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
Salin selepas log masuk

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
Salin selepas log masuk

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!

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