Cara Mengeluarkan Digit daripada Terapung
Untuk mengalih keluar digit daripada apungan dan mengekalkan bilangan digit tertentu selepas titik perpuluhan, ikuti langkah berikut:
Pelaksanaan (Python 2.7 dan 3.1 ):
def truncate(f, n):
"""Truncates/pads a float f to n decimal places without rounding"""
s = '{}'.format(f)
if 'e' in s or 'E' in s:
return '{0:.{1}f}'.format(f, n)
i, p, d = s.partition('.')
return '.'.join([i, (d+'0'*n)[:n]])
Salin selepas log masuk
Pelaksanaan (Versi Lama Python):
def truncate(f, n):
"""Truncates/pads a float f to n decimal places without rounding"""
s = '%.12f' % f
i, p, d = s.partition('.')
return '.'.join([i, (d+'0'*n)[:n]])
Salin selepas log masuk
Penjelasan:
-
Tukar kepada Rentetan: Tukar apungan kepada rentetan pada ketepatan penuh menggunakan '{}'.
-
Kendalikan Notasi Saintifik: Jika perwakilan rentetan termasuk 'e' atau 'E', gunakan '{0:.{1}f}' untuk memformatkannya.
-
Pemisah Rentetan: Bahagikan rentetan kepada tiga bahagian: sebelum titik perpuluhan (i), titik perpuluhan itu sendiri (p) dan selepas titik perpuluhan (d).
-
Potong atau Pad: Tambahkan '0 kepada d jika perlu untuk mendapatkan n tempat perpuluhan, atau potong d jika ia mengandungi lebih daripada n tempat perpuluhan.
Pertimbangan Khas:
-
Pertimbangan Ketepatan: Untuk versi Python yang lebih lama (sehingga 2.6 atau 3.0), memilih ketepatan tetap (cth., 12) untuk pembundaran mungkin diperlukan untuk mengelakkan ralat pemangkasan.
-
Ralat Bulat dan Titik Terapung: Beberapa literal titik terapung mungkin mewakili nilai perduaan yang sama walaupun ia kelihatan berbeza dalam kod, yang membawa kepada potensi percanggahan dalam pemotongan.
Atas ialah kandungan terperinci Bagaimana Saya Memotong Terapung ke Nombor Tertentu Tempat Perpuluhan Tanpa Pembundaran?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!