Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Mengehadkan Nombor Titik Terapung dengan Tepat kepada Dua Tempat Perpuluhan dalam Python?
Menghadkan Terapung kepada Dua Titik Perpuluhan: Ketaktepatan Titik Terapung dan Penyelesaian Alternatif
Menghadapi percanggahan antara nilai titik terapung yang dijangka dan yang dipaparkan ialah isu biasa yang dihadapi oleh pemaju. Dalam Python, kod yang disediakan bertujuan untuk membundarkan nilai 'a' kepada 13.95 tetapi menghasilkan hasil yang sedikit berbeza disebabkan oleh pengehadan perwakilan titik terapung.
Nombor titik terapung digunakan untuk mewakili nombor nyata dalam sistem komputer binari. Walau bagaimanapun, tidak semua nombor boleh diwakili dengan ketepatan penuh, yang membawa kepada ralat pembundaran. Dalam kes 'a', nilai bulat adalah sama dengan nilai asal kerana komputer menyimpannya sebagai pecahan binari yang tidak boleh mewakili 13.95 dengan tepat.
Jenis titik terapung berketepatan ganda Python menggunakan 53 bit ketepatan, manakala apungan biasa mempunyai 24 bit. Ini bermakna ketepatan nombor titik terapung dihadkan kepada 16 digit perpuluhan untuk ketepatan berganda dan 8 digit perpuluhan untuk apungan biasa.
Untuk menangani isu ini, beberapa pendekatan boleh dipertimbangkan:
Pemformatan Paparan
Untuk memaparkan 'a' dengan hanya dua tempat perpuluhan, gunakan teknik pemformatan rentetan seperti sebagai:
print("%.2f" % a) # Output: 13.95 print("{:.2f}".format(a)) # Output: 13.95
Jenis Perpuluhan
Jika ketepatan tepat diperlukan, pertimbangkan untuk menggunakan jenis perpuluhan daripada modul perpuluhan:
import decimal decimal.Decimal('13.95') # Output: Decimal('13.95')
Perwakilan Integer
Untuk nilai mata wang di mana ketepatan diperlukan hanya sehingga dua tempat perpuluhan, gunakan integer untuk menyimpan nilai dalam sen dan bahagikan dengan 100 untuk menukar kepada dolar:
value_in_cents = 1395 # Store value as an integer value_in_dollars = value_in_cents / 100 # Output: 13.95
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengehadkan Nombor Titik Terapung dengan Tepat kepada Dua Tempat Perpuluhan dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!