Menghadkan Terapung kepada Dua Titik Perpuluhan
Mencuba untuk membundarkan apungan kepada dua titik perpuluhan menggunakan kaedah standard seperti round() mungkin menghasilkan keputusan yang tidak dijangka . Ini disebabkan oleh had sedia ada bagi perwakilan titik terapung, di mana nombor tertentu tidak boleh diwakili dengan tepat.
Dalam komputer binari, nombor titik terapung disimpan sebagai integer dibahagikan dengan kuasa dua. Sebagai contoh, 13.95 lebih kurang diwakili sebagai 125650429603636838/(2**53). Memandangkan jenis titik terapung mempunyai ketepatan terhad (24 bit untuk terapung dan 53 bit untuk ketepatan berganda), nilai ini tidak boleh sentiasa diwakili dengan tepat.
Akibatnya, pembundaran nombor titik terapung menggunakan bulat() mungkin menghasilkan keputusan yang sedikit off. Untuk mencapai ketepatan tempat dua perpuluhan yang diingini untuk tujuan paparan, pendekatan alternatif boleh diambil:
Untuk contoh, operasi berikut akan membundarkan a kepada dua tempat perpuluhan dengan betul untuk paparan:
print("%.2f" % a) # -> 13.95 print("{:.2f}".format(a)) # -> 13.95
Menggunakan "{:.15f}".format(bulat(a, 2)) akan mengembalikan 13.949999999999999 disebabkan oleh ketepatan had nombor titik terapung. Walau bagaimanapun, untuk tujuan paparan, tahap ketepatan ini tidak diperlukan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membulat Terapung dengan Boleh Dipercayai ke Dua Tempat Perpuluhan untuk Paparan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!