Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk Memotong Nilai Terapung ke Nombor Khusus Tempat Perpuluhan dalam Python tanpa Pembundaran?
Cara Memotong Nilai Apungan kepada Nombor Khusus Tempat Perpuluhan
Dalam Python, anda boleh mengalih keluar digit daripada apungan untuk mencapai tetap bilangan digit selepas titik perpuluhan. Pertimbangkan contoh berikut:
1.923328437452 → 1.923
Pemotongan apungan kepada tiga tempat perpuluhan menghasilkan output yang diingini sebanyak 1.923.
Penyelesaian
Fungsi di bawah melaksanakan tugas ini:
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]])
Penjelasan
Fungsi menukar apungan kepada perwakilan rentetan, membahagikannya kepada tiga bahagian: bahagian integer, titik perpuluhan , dan bahagian pecahan. Ia kemudiannya meletakkan bahagian pecahan dengan sifar sehingga bilangan tempat perpuluhan yang ditentukan, memastikan bahawa sebarang digit lebihan dipotong.
Mengendalikan Notasi Saintifik
Fungsi menyemak sama ada apungan diwakili dalam tatatanda saintifik (e atau E) dan menggunakan fungsi format yang berbeza untuk mengekalkan eksponen.
Versi Python Lama
Untuk versi Python lebih awal daripada 2.7 , anda masih boleh memotong terapung, tetapi hasilnya mungkin tidak tepat disebabkan oleh pengehadan dalam mekanisme pemformatan titik terapung. Penyelesaian yang mungkin adalah dengan membulatkan apungan kepada ketepatan yang lebih tinggi sebelum memotong:
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]])
Atas ialah kandungan terperinci Bagaimana untuk Memotong Nilai Terapung ke Nombor Khusus Tempat Perpuluhan dalam Python tanpa Pembundaran?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!