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

python中精確的浮點(diǎn)數(shù)運(yùn)算示例

 更新時(shí)間:2023年07月25日 15:49:00   作者:weapon  
這篇文章主要為大家介紹了python中精確的浮點(diǎn)數(shù)運(yùn)算示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

起步

浮點(diǎn)數(shù)的一個(gè)普遍的問題是它們不能精確的表示十進(jìn)制數(shù)。

>>> a = 4.2
>>> b = 2.1
>>> a + b
6.300000000000001
>>> (a + b) == 6.3
False
>>>

這是由于底層 CPU 和 IEEE 754 標(biāo)準(zhǔn)通過自己的浮點(diǎn)單位去執(zhí)行算術(shù)時(shí)的特征??此朴懈F的小數(shù), 在計(jì)算機(jī)的二進(jìn)制表示里卻是無窮的。

一般情況下,這一點(diǎn)點(diǎn)的小誤差是允許存在的。如果不能容忍這種誤差(比如金融領(lǐng)域),那么就要考慮用一些途徑來解決這個(gè)問題了。

Decimal

使用這個(gè)模塊不會(huì)出現(xiàn)任何小誤差。

>>> from decimal import Decimal
>>> a = Decimal('4.2')
>>> b = Decimal('2.1')
>>> a + b
Decimal('6.3')
>>> print(a + b)
6.3
>>> (a + b) == Decimal('6.3')
True

盡管代碼看起來比較奇怪,使用字符串來表示數(shù)字,但是 Decimal 支持所有常用的數(shù)學(xué)運(yùn)算。 decimal 模塊允許你控制計(jì)算的每一方面,包括數(shù)字位數(shù)和四舍五入。在這樣做之前,需要?jiǎng)?chuàng)建一個(gè)臨時(shí)上下文環(huán)境來改變這種設(shè)定:

>>> from decimal import Decimal, localcontext
>>> a = Decimal('1.3')
>>> b = Decimal('1.7')
>>> print(a / b)
0.7647058823529411764705882353
>>> with localcontext() as ctx:
...     ctx.prec = 3
...     print(a / b)
...
0.765
>>> with localcontext() as ctx:
...     ctx.prec = 50
...     print(a / b)
...
0.76470588235294117647058823529411764705882352941176
>>>

由于 Decimal 的高精度數(shù)字自然也就用字符串來做展示和中轉(zhuǎn)。

總結(jié)

總的來說,當(dāng)涉及金融領(lǐng)域時(shí),哪怕是一點(diǎn)小小的誤差在計(jì)算過程中都是不允許的。因此 decimal 模塊為解決這類問題提供了方法。

以上就是python中精確的浮點(diǎn)數(shù)運(yùn)算示例的詳細(xì)內(nèi)容,更多關(guān)于python浮點(diǎn)數(shù)運(yùn)算的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • openCV提取圖像中的矩形區(qū)域

    openCV提取圖像中的矩形區(qū)域

    這篇文章主要為大家詳細(xì)介紹了openCV提取圖像中的矩形區(qū)域,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-07-07
  • python 簡單的股票基金爬蟲

    python 簡單的股票基金爬蟲

    最近基金非?;鸨?,很多原本不投資、不理財(cái)人,也開始討論、參與買基金了。根據(jù)投資對(duì)象的不同,基金分為股票型基金、債券基金、混合型基金、貨幣基金。所以今天我們就來看看,這些基金公司都喜歡買那些公司的股票。
    2021-06-06
  • 關(guān)于Python中的排列組合生成器詳解

    關(guān)于Python中的排列組合生成器詳解

    這篇文章主要介紹了關(guān)于Python中的排列組合生成器詳解,在Python的內(nèi)置模塊?functools中,提供了高階類?product()?,用于實(shí)現(xiàn)多個(gè)可迭代對(duì)象中元素的組合,返回可迭代對(duì)象中元素組合的笛卡爾積,效果相當(dāng)于嵌套的循環(huán),需要的朋友可以參考下
    2023-07-07
  • Python實(shí)現(xiàn)XGBoost算法的應(yīng)用實(shí)戰(zhàn)

    Python實(shí)現(xiàn)XGBoost算法的應(yīng)用實(shí)戰(zhàn)

    XGBoost(Extreme Gradient Boosting)是一種高效且廣泛使用的集成學(xué)習(xí)算法,它屬于梯度提升樹(GBDT)模型的一種改進(jìn),本文將結(jié)合實(shí)際案例,詳細(xì)介紹如何在Python中使用XGBoost算法進(jìn)行模型訓(xùn)練和預(yù)測(cè),需要的朋友可以參考下
    2024-08-08
  • Python關(guān)于反射的實(shí)例代碼分享

    Python關(guān)于反射的實(shí)例代碼分享

    在本篇文章里小編給大家整理的是一篇關(guān)于Python關(guān)于反射的實(shí)例代碼分享,有需要的朋友們可以參考下。
    2020-02-02
  • 深入解析Python中的復(fù)雜異常處理機(jī)制

    深入解析Python中的復(fù)雜異常處理機(jī)制

    在?Python?編程中,異常處理不僅是一項(xiàng)基本技能,更是一種高級(jí)藝術(shù),本文將帶大家深入了解下Python中的復(fù)雜異常處理機(jī)制,希望對(duì)大家有所幫助
    2025-01-01
  • python 自動(dòng)軌跡繪制的實(shí)例代碼

    python 自動(dòng)軌跡繪制的實(shí)例代碼

    今天小編就為大家分享一篇python 自動(dòng)軌跡繪制的實(shí)例代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • 最新評(píng)論