Bagaimana Saya Memotong Terapung ke Nombor Tertentu Tempat Perpuluhan Tanpa Pembundaran?

Susan Sarandon
Lepaskan: 2024-11-06 09:45:02
asal
753 orang telah melayarinya

How Do I Truncate a Float to a Specific Number of Decimal Places Without Rounding?

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:

  1. Tukar kepada Rentetan: Tukar apungan kepada rentetan pada ketepatan penuh menggunakan '{}'.
  2. Kendalikan Notasi Saintifik: Jika perwakilan rentetan termasuk 'e' atau 'E', gunakan '{0:.{1}f}' untuk memformatkannya.
  3. Pemisah Rentetan: Bahagikan rentetan kepada tiga bahagian: sebelum titik perpuluhan (i), titik perpuluhan itu sendiri (p) dan selepas titik perpuluhan (d).
  4. 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!

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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!