欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python執(zhí)行精確的小數(shù)計(jì)算方法

 更新時(shí)間:2019年01月21日 09:56:06   作者:yangjiajia123456  
今天小編就為大家分享一篇python執(zhí)行精確的小數(shù)計(jì)算方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

在進(jìn)行浮點(diǎn)數(shù)計(jì)算時(shí)它們無(wú)法精確表達(dá)出所有的十進(jìn)制小數(shù)位。

a = 4.1
b = 5.329
print(a+b)
 
9.428999999999998

這些誤差實(shí)際上是底層CPU的浮點(diǎn)運(yùn)算單元和IEEE754浮點(diǎn)數(shù)算數(shù)標(biāo)準(zhǔn)的一種“特性”。python的浮點(diǎn)數(shù)類型保存的數(shù)據(jù)采用的是原始表示形式,因此使用float實(shí)例時(shí)就不能避免這樣的誤差。

我們可以使用decimal模塊避免這種操作(如果不介意犧牲下性能):

from decimal import Decimal
a = Decimal('4.1')
b = Decimal('5.329')
print(a+b)
 
9.429

注意Decimal的參數(shù)必須是字符串,不能是浮點(diǎn)型,否則誤差依舊存在。

decimal模塊的主要功能是允許控制計(jì)算過(guò)程中的各個(gè)方面,包括數(shù)字的尾數(shù)和四舍五入。

from decimal import Decimal
from decimal import localcontext
a = Decimal(4.1)
b = Decimal(5.329)
print(a/b)
print('================')
with localcontext() as ctx:
  ctx.prec = 3
  print(a/b)
 
0.7693751172827922400071261708
================
0.769

getcontext也可以實(shí)現(xiàn)和localcontext一樣的功能

from decimal import Decimal, getcontext
a = Decimal(4.1)
b = Decimal(5.329)
getcontext().prec = 3
print(a/b)
 
0.769

誤差我們不能完全消除,我們只能盡力優(yōu)化算法,使得誤差盡可能小。在大數(shù)和小數(shù)相加時(shí)要格外注意。

nums = [3.21e+18, 1, -3.21e+18]
print(sum(nums))
print('=========================')
import math
res = math.fsum(nums)
print(res)
 
0.0
=========================
1.0

以上這篇python執(zhí)行精確的小數(shù)計(jì)算方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python中celery的使用

    Python中celery的使用

    Celery是一個(gè)簡(jiǎn)單、靈活且可靠的,處理大量消息的分布式系統(tǒng),專注于實(shí)時(shí)處理的異步任務(wù)隊(duì)列,同時(shí)也支持任務(wù)調(diào)度。接下來(lái)通過(guò)本文給大家介紹Python中celery的使用詳解,感興趣的朋友一起看看吧
    2021-08-08
  • python中的迭代器,生成器與裝飾器詳解

    python中的迭代器,生成器與裝飾器詳解

    大家好,本篇文章主要講的是python中的迭代器,生成器與裝飾器詳解,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下
    2022-02-02
  • python wordcloud庫(kù)實(shí)例講解使用方法

    python wordcloud庫(kù)實(shí)例講解使用方法

    這篇文章主要介紹了python wordcloud庫(kù)實(shí)例,詞云通過(guò)以詞語(yǔ)為基本單位,更加直觀和藝術(shù)地展示文本。wordcloud是優(yōu)秀的詞云展示的python第三方庫(kù)
    2022-12-12
  • python逆向入門教程

    python逆向入門教程

    這篇文章主要介紹了python逆向入門教程,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-01-01
  • Python實(shí)現(xiàn)深度遍歷和廣度遍歷的方法

    Python實(shí)現(xiàn)深度遍歷和廣度遍歷的方法

    今天小編就為大家分享一篇Python實(shí)現(xiàn)深度遍歷和廣度遍歷的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01
  • Python 字符串處理特殊空格\xc2\xa0\t\n Non-breaking space

    Python 字符串處理特殊空格\xc2\xa0\t\n Non-breaking space

    今天遇到一個(gè)問(wèn)題,使用python的find函數(shù)尋找字符串中的第一個(gè)空格時(shí)沒(méi)有找到正確的位置,下面是解決方法,需要的朋友可以參考下
    2020-02-02
  • 怎樣用cmd命令行運(yùn)行Python文件

    怎樣用cmd命令行運(yùn)行Python文件

    這篇文章主要介紹了怎樣用cmd命令行運(yùn)行Python文件問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • Python二維列表的創(chuàng)建、轉(zhuǎn)換以及訪問(wèn)詳解

    Python二維列表的創(chuàng)建、轉(zhuǎn)換以及訪問(wèn)詳解

    列表中的元素還可以是另一個(gè)列表,這種列表稱為多為列表,只有一層嵌套的多維列表稱為二維列表,下面這篇文章主要給大家介紹了關(guān)于Python二維列表的創(chuàng)建、轉(zhuǎn)換及訪問(wèn)的相關(guān)資料,需要的朋友可以參考下
    2022-04-04
  • Python彩色化Linux的命令行終端界面的代碼實(shí)例分享

    Python彩色化Linux的命令行終端界面的代碼實(shí)例分享

    美化Linux的terminal終端顯示的方法多種多樣,這里我們給出一個(gè)利用Python彩色化Linux的命令行終端界面的代碼實(shí)例分享,包括一個(gè)Linux下簡(jiǎn)便執(zhí)行Python程序的方法,需要的朋友可以參考下
    2016-07-07
  • Python爬蟲(chóng)實(shí)現(xiàn)抓取電影網(wǎng)站信息并入庫(kù)

    Python爬蟲(chóng)實(shí)現(xiàn)抓取電影網(wǎng)站信息并入庫(kù)

    本文主要介紹了利用Python爬蟲(chóng)實(shí)現(xiàn)抓取電影網(wǎng)站信息的功能,并將抓取到的信息入庫(kù)。文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起了解一下
    2022-02-02

最新評(píng)論