Jadual Kandungan
Kaedah penggunaan
Contoh
Output
Kaedah 1: Gunakan fungsi Decimal() modul perpuluhan
Tingkatkan nilai ketepatan kepada '60' untuk ketepatan yang lebih baik
Kaedah 2: Gunakan fungsi fsum() modul matematik
Tatabahasa
Kesimpulan
Rumah pembangunan bahagian belakang Tutorial Python Bagaimana untuk melakukan pengiraan perpuluhan yang tepat menggunakan Python?

Bagaimana untuk melakukan pengiraan perpuluhan yang tepat menggunakan Python?

Aug 23, 2023 pm 03:53 PM
python tepat Pengiraan perpuluhan

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

Output

Apabila dilaksanakan, program di atas akan menjana output berikut -

x + y = 7.300000000000001
False
Salin selepas log masuk

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

Output

Apabila dilaksanakan, program di atas akan menjana output berikut -

x + y = 7.3
True
Salin selepas log masuk

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

Output

Apabila dilaksanakan, program di atas akan menjana output berikut -

0.8518518518518518518518518519
0.852
Salin selepas log masuk

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

Output

Apabila dilaksanakan, program di atas akan menjana output berikut -

0.8518518518518518518518518519
0.851851851851851851851851851851851851851851851851851851851852
Salin selepas log masuk

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

Output

Apabila dilaksanakan, program di atas akan menghasilkan output berikut −

0.0
Salin selepas log masuk
Fungsi

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

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

Output

Apabila dilaksanakan, program di atas akan menjana output berikut -

1.0
Salin selepas log masuk

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!

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

PHP dan Python: Contoh dan perbandingan kod PHP dan Python: Contoh dan perbandingan kod Apr 15, 2025 am 12:07 AM

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 vs JavaScript: Komuniti, Perpustakaan, dan Sumber Python vs JavaScript: Komuniti, Perpustakaan, dan Sumber Apr 15, 2025 am 12:16 AM

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.

Penjelasan terperinci mengenai Prinsip Docker Penjelasan terperinci mengenai Prinsip Docker Apr 14, 2025 pm 11:57 PM

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.

Bolehkah kod studio visual digunakan dalam python Bolehkah kod studio visual digunakan dalam python Apr 15, 2025 pm 08:18 PM

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.

Cara menjalankan program di terminal vscode Cara menjalankan program di terminal vscode Apr 15, 2025 pm 06:42 PM

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.

Adakah sambungan vscode berniat jahat? Adakah sambungan vscode berniat jahat? Apr 15, 2025 pm 07:57 PM

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: Automasi, skrip, dan pengurusan tugas Python: Automasi, skrip, dan pengurusan tugas Apr 16, 2025 am 12:14 AM

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.

Boleh kod vs dijalankan di Windows 8 Boleh kod vs dijalankan di Windows 8 Apr 15, 2025 pm 07:24 PM

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.

See all articles