Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Saya Boleh Membulat Terapung dengan Boleh Dipercayai ke Dua Tempat Perpuluhan untuk Paparan?

Bagaimanakah Saya Boleh Membulat Terapung dengan Boleh Dipercayai ke Dua Tempat Perpuluhan untuk Paparan?

Barbara Streisand
Lepaskan: 2025-01-05 09:00:43
asal
866 orang telah melayarinya

How Can I Reliably Round Floats to Two Decimal Places for Display?

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:

  • Gunakan integer untuk menyimpan nilai monetari dalam sen dan bahagikan dengan 100 untuk memaparkan dolar.
  • Gunakan pustaka nombor titik tetap seperti perpuluhan untuk memastikan perwakilan yang tepat.

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

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!

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