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

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

DDD
DDDasal
2024-12-19 03:17:23453semak imbas

How Can I Precisely Limit Floating-Point Numbers to Two Decimal Places in 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!

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