


Bagaimana untuk melakukan pengiraan perpuluhan yang tepat menggunakan Python?
Dalam artikel ini, kita akan belajar cara melakukan pengiraan perpuluhan yang tepat dalam Python.
Kaedah penggunaan
Menggunakan fungsi Perpuluhan() bagi Modul perpuluhan
Gunakan fungsi fsum() modul matematik
Ketidakupayaan nombor titik terapung untuk mewakili semua nombor perpuluhan dengan tepat adalah kelemahan yang terkenal. Tambahan pula, pengiraan matematik yang mudah pun boleh menghasilkan beberapa ralat. Contohnya −
Contoh
Atur cara berikut menunjukkan ketidakupayaan integer titik terapung untuk mewakili semua nombor perpuluhan dengan tepat -
x = 4.2 y = 3.1 # printing the sum of both the variables print("x + y =", x + y) # checking if the sum is both the variables is equal to 7.3 print((x + y) == 7.3)
Output
Apabila dilaksanakan, program di atas akan menjana output berikut -
x + y = 7.300000000000001 False
Ralat ini ialah "ciri" piawaian aritmetik IEEE 754 yang digunakan oleh CPU asas sistem dan unit titik terapungnya. Jika anda menulis kod menggunakan contoh apungan, tiada apa yang boleh anda lakukan untuk mengelakkan ralat sedemikian, kerana jenis data apungan Python menggunakan perwakilan asli untuk menyimpan data.
Menggunakan modul perpuluhan akan memberikan anda ketepatan yang lebih tinggi pada kos beberapa prestasi Mari kita lihat di bawah.
Kaedah 1: Gunakan fungsi Decimal() modul perpuluhan
Contoh
Atur cara berikut menunjukkan contoh penggunaan fungsi Decimal() untuk pengiraan perpuluhan yang tepat:
# importing Decimal from decimal module from decimal import Decimal x = Decimal('4.2') y = Decimal('3.1') # printing the sum of both the variables print("x + y =", x + y) # checking if the sum is both the variables is equal to 7.3 using by passing the sum to the Decimal Function print((x + y) == Decimal('7.3'))
Output
Apabila dilaksanakan, program di atas akan menjana output berikut -
x + y = 7.3 True
Dalam kod di atas, ia mungkin berasa pelik pada mulanya bahawa nombor itu dinyatakan sebagai rentetan. Walau bagaimanapun, objek perpuluhan berfungsi sama seperti yang anda jangkakan (semua operasi matematik biasa disokong, dsb.). Apabila anda mencetaknya atau menggunakannya dalam fungsi pemformatan rentetan, ia kelihatan seperti nombor biasa.
Mengawal pelbagai aspek pengiraan, seperti bilangan digit dan kaedah pembundaran, ialah ciri utama perpuluhan.
Contoh
Untuk melakukan ini, buat konteks setempat dan ubah suai tetapannya.
# importing localcontext from decimal module from decimal import localcontext x = Decimal('2.3') y = Decimal('2.7') # dividing x by y(returns as a floating-point number) print(x / y) with localcontext() as context: # rounding the number upto 3 digits i.e, precision 3 context.prec = 3 # Dividing x by y with precision set to 3 print(x / y)
Output
Apabila dilaksanakan, program di atas akan menjana output berikut -
0.8518518518518518518518518519 0.852
Tingkatkan nilai ketepatan kepada '60' untuk ketepatan yang lebih baik
Contoh
# importing localcontext from decimal module import decimal from decimal import localcontext x = decimal.Decimal('2.3') y = decimal.Decimal('2.7') # dividing x by y(returns as a floating-point number) print(x / y) with localcontext() as context: # Rounding the number upto 60 digits i.e, precision 60 context.prec = 60 # Dividing x by y with precision set to 3 print(x / y)
Output
Apabila dilaksanakan, program di atas akan menjana output berikut -
0.8518518518518518518518518519 0.851851851851851851851851851851851851851851851851851851851852
Kaedah 2: Gunakan fungsi fsum() modul matematik
Modul perpuluhan melaksanakan "Spesifikasi Aritmetik Perpuluhan Sejagat" IBM.
Tidak perlu dikatakan, terdapat banyak pilihan penyesuaian di luar skop artikel ini.
Pemula Python mungkin tergoda untuk menggunakan modul perpuluhan untuk menyelesaikan masalah ketepatan dengan jenis data titik terapung. Tetapi anda juga perlu memahami kawasan permohonan anda. Jenis titik terapung biasa biasanya lebih biasa digunakan apabila menangani masalah saintifik atau kejuruteraan, grafik komputer atau perkara lain yang bersifat saintifik.
Sebagai contoh, beberapa elemen dalam dunia sebenar boleh diukur dengan ketepatan 17-bit yang disediakan oleh titik terapung. Oleh itu, walaupun ralat pengiraan kecil tidak mempunyai kesan. Lebih-lebih lagi, titik terapung asli juga ketara lebih pantas, yang penting untuk situasi di mana anda perlu menjalankan banyak pengiraan.
Contoh
Namun, anda tidak boleh mengelak kesilapan sepenuhnya. Banyak algoritma telah dikaji secara meluas oleh ahli matematik, dan ada yang lebih baik dalam mengendalikan ralat daripada yang lain. Selain itu, sedikit berhati-hati diperlukan kerana amalan menolak pembatalan dan menambah nombor besar dan kecil boleh membawa akibat.
inputList = [1.23e+18, 1, -1.23e+18] # observe how the 1 disappears here if we perform sum() on the list print(sum(inputList))
Output
Apabila dilaksanakan, program di atas akan menghasilkan output berikut −
0.0
fsum() digunakan untuk mencari jumlah antara julat tertentu atau objek boleh lelar. Ia memerlukan pengimportan perpustakaan matematik. Ia digunakan secara meluas dalam pengiraan matematik.
Tatabahasa
Berikut ialah sintaks fungsi tersebut.
maths.fsum( iterable )
Objek boleh lelar boleh jadi julat, tatasusunan atau senarai.
Jenis pemulangan -
Ia mengembalikan nombor titik terapung.
Contoh
Contoh berikut boleh digunakan untuk pelaksanaan yang lebih tepat dalam math.fsum() -
# importing math module import math # input list inputList = [1.23e+18, 1, -1.23e+18] # adding the sum of elements of the list using the fsum() function print(math.fsum(inputList))
Output
Apabila dilaksanakan, program di atas akan menjana output berikut -
1.0
Sebaliknya, anda sebenarnya perlu mengkaji dan memahami sifat penyebaran ralat algoritma lain.
Namun begitu, program yang berkaitan dengan topik seperti kewangan adalah tempat modul perpuluhan paling kerap digunakan. Adalah sangat tidak menyenangkan apabila ketidaktepatan kecil muncul dalam pengiraan sistem ini.
Oleh itu, modul perpuluhan menyediakan cara untuk mengelakkan situasi ini. Objek perpuluhan sering ditemui semula apabila Python berinteraksi dengan pangkalan data, terutamanya apabila mengakses data kewangan.
Kesimpulan
Kami mengetahui dalam artikel ini bahawa terdapat situasi tertentu di mana pengiraan biasa gagal, jadi kami memerlukan pengiraan perpuluhan yang betul. Kami belajar cara melakukan pengiraan perpuluhan yang tepat menggunakan dua fungsi berasingan, perpuluhan() dan fsum(). Kami juga mempelajari cara menggunakan fungsi localcontext() untuk menetapkan ketepatan keputusan.
Atas ialah kandungan terperinci Bagaimana untuk melakukan pengiraan perpuluhan yang tepat menggunakan Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



PHP dan Python mempunyai kelebihan dan kekurangan mereka sendiri, dan pilihannya bergantung kepada keperluan projek dan keutamaan peribadi. 1.PHP sesuai untuk pembangunan pesat dan penyelenggaraan aplikasi web berskala besar. 2. Python menguasai bidang sains data dan pembelajaran mesin.

Python dan JavaScript mempunyai kelebihan dan kekurangan mereka sendiri dari segi komuniti, perpustakaan dan sumber. 1) Komuniti Python mesra dan sesuai untuk pemula, tetapi sumber pembangunan depan tidak kaya dengan JavaScript. 2) Python berkuasa dalam bidang sains data dan perpustakaan pembelajaran mesin, sementara JavaScript lebih baik dalam perpustakaan pembangunan dan kerangka pembangunan depan. 3) Kedua -duanya mempunyai sumber pembelajaran yang kaya, tetapi Python sesuai untuk memulakan dengan dokumen rasmi, sementara JavaScript lebih baik dengan MDNWebDocs. Pilihan harus berdasarkan keperluan projek dan kepentingan peribadi.

Docker menggunakan ciri -ciri kernel Linux untuk menyediakan persekitaran berjalan yang cekap dan terpencil. Prinsip kerjanya adalah seperti berikut: 1. Cermin digunakan sebagai templat baca sahaja, yang mengandungi semua yang anda perlukan untuk menjalankan aplikasi; 2. Sistem Fail Kesatuan (Unionfs) menyusun pelbagai sistem fail, hanya menyimpan perbezaan, menjimatkan ruang dan mempercepatkan; 3. Daemon menguruskan cermin dan bekas, dan pelanggan menggunakannya untuk interaksi; 4. Ruang nama dan cgroups melaksanakan pengasingan kontena dan batasan sumber; 5. Pelbagai mod rangkaian menyokong interkoneksi kontena. Hanya dengan memahami konsep -konsep teras ini, anda boleh menggunakan Docker dengan lebih baik.

Kod VS boleh digunakan untuk menulis Python dan menyediakan banyak ciri yang menjadikannya alat yang ideal untuk membangunkan aplikasi python. Ia membolehkan pengguna untuk: memasang sambungan python untuk mendapatkan fungsi seperti penyempurnaan kod, penonjolan sintaks, dan debugging. Gunakan debugger untuk mengesan kod langkah demi langkah, cari dan selesaikan kesilapan. Mengintegrasikan Git untuk Kawalan Versi. Gunakan alat pemformatan kod untuk mengekalkan konsistensi kod. Gunakan alat linting untuk melihat masalah yang berpotensi lebih awal.

Dalam kod VS, anda boleh menjalankan program di terminal melalui langkah -langkah berikut: Sediakan kod dan buka terminal bersepadu untuk memastikan bahawa direktori kod selaras dengan direktori kerja terminal. Pilih arahan Run mengikut bahasa pengaturcaraan (seperti python python your_file_name.py) untuk memeriksa sama ada ia berjalan dengan jayanya dan menyelesaikan kesilapan. Gunakan debugger untuk meningkatkan kecekapan debug.

Sambungan kod VS menimbulkan risiko yang berniat jahat, seperti menyembunyikan kod jahat, mengeksploitasi kelemahan, dan melancap sebagai sambungan yang sah. Kaedah untuk mengenal pasti sambungan yang berniat jahat termasuk: memeriksa penerbit, membaca komen, memeriksa kod, dan memasang dengan berhati -hati. Langkah -langkah keselamatan juga termasuk: kesedaran keselamatan, tabiat yang baik, kemas kini tetap dan perisian antivirus.

Python cemerlang dalam automasi, skrip, dan pengurusan tugas. 1) Automasi: Sandaran fail direalisasikan melalui perpustakaan standard seperti OS dan Shutil. 2) Penulisan Skrip: Gunakan Perpustakaan Psutil untuk memantau sumber sistem. 3) Pengurusan Tugas: Gunakan perpustakaan jadual untuk menjadualkan tugas. Kemudahan penggunaan Python dan sokongan perpustakaan yang kaya menjadikannya alat pilihan di kawasan ini.

Kod VS boleh dijalankan pada Windows 8, tetapi pengalaman mungkin tidak hebat. Mula -mula pastikan sistem telah dikemas kini ke patch terkini, kemudian muat turun pakej pemasangan kod VS yang sepadan dengan seni bina sistem dan pasangnya seperti yang diminta. Selepas pemasangan, sedar bahawa beberapa sambungan mungkin tidak sesuai dengan Windows 8 dan perlu mencari sambungan alternatif atau menggunakan sistem Windows yang lebih baru dalam mesin maya. Pasang sambungan yang diperlukan untuk memeriksa sama ada ia berfungsi dengan betul. Walaupun kod VS boleh dilaksanakan pada Windows 8, disyorkan untuk menaik taraf ke sistem Windows yang lebih baru untuk pengalaman dan keselamatan pembangunan yang lebih baik.
