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:
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!