python的小數數字對象,類似于浮點數,只不過小數數字有固定的位數和小數點。
python小數數字是有固定精度的浮點值。
python小數數字對象的性能略微低于浮點數。
python小數數字需使用decimal模塊。
python的decimal.getcontext().prec可以設置小數精度。
1.1 python小數基礎知識
python浮點數缺乏精確性,因為存儲數值的空間有限。
python小數對象可以修正浮點數的精確性問題。
1.1.1 Decimal()
python不同小數位數的Decimal對象運算時,自動升級為小數位數最多的小數位。
用法
Decimal(str)
描述
生成小數字符串對應的Decimal對象。
入參
str:小數字符串
示例
>>> 0.1+0.1+0.1-0.3
5.551115123125783e-17
>>> print(0.1+0.1+0.1-0.3)
5.551115123125783e-17
>>> from decimal import Decimal
>>> Decimal('0.1')+Decimal('0.1')+Decimal('0.1')-Decimal('0.3')
Decimal('0.0')
>>> Decimal('0.10')+Decimal('0.1')+Decimal('0.1')-Decimal('0.3')
Decimal('0.00')
1.2 設置全局精度
python通過上下文對象(decimal.getcontext().prec)設置小數的全局精度。
示例
>>> import decimal
>>> decimal.Decimal(1)/decimal.Decimal(7)
Decimal('0.1428571428571428571428571429')
>>> decimal.getcontext().prec = 4
>>> decimal.Decimal(1)/decimal.Decimal(7)
Decimal('0.1429')
1.3 臨時設置精度
python通過本地上下文管理器(decimal. localcontext ().prec)設置小數的臨時精度。語句執行完后,繼續使用初始精度。
示例
>>> import decimal
>>> decimal.Decimal('1.00')/decimal.Decimal('3.00')
Decimal('0.3333333333333333333333333333')
>>> with decimal.localcontext() as ctx:
... ctx.prec = 2
... decimal.Decimal('1.00')/decimal.Decimal('3.00')
...
...
Decimal('0.33')
>>> decimal.Decimal('1.00')/decimal.Decimal('3.00')
Decimal('0.3333333333333333333333333333')
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
浮點數
+關注
關注
0文章
61瀏覽量
15909 -
python
+關注
關注
56文章
4807瀏覽量
85040
發布評論請先 登錄
相關推薦
Python的面向對象編程詳解
一般編程可分為面向過程編程,和面向對象編程。Python的面向對象編程,與Java的面向對象很像。之所以需要面向對象編程,是為了更好地實現封
發表于 09-04 16:35
?594次閱讀
VHDL 怎么定義整數數組和小數數組啊
比如簡單的以為數組我想定義成(3,13,22,3,4,5)這種,怎么定義成二維(1,3,4;2,5,4)同上一維小數數組怎么定義,二維小數數組怎么定義樓主新手,發現給的一維和二維例程都是邏輯的0和1 ,非常苦惱
發表于 05-14 16:24
Python中常用的數據類型
~9223372036854775807。long(長整型)Python長整型沒有指定位寬,但是由于機器內存有限,使用長的長整數數值也不可能無限大。float(浮點型)浮點型也就是帶有小數點的數,其
發表于 04-19 15:14
3分鐘看懂Python面向對象
Python雖然是解釋型語言,但從設計之初就已經是一門面向對象的語言,對于Python來說一切皆為對象。正因為如此,在Python中創建一個
發表于 06-08 14:20
總結:一文了解Python中的數字類型
支持三種不同的數字類型,整數、浮點數和復數。 整數通常被稱為整型,數值為正或者負,不帶小數點。python 3的整型可以當做Long類型使用,所以python 3 沒有
發表于 09-26 16:49
Python中的類和對象詳解
Python 是一種面向對象的編程語言,它支持類和對象。類是一種用戶自定義的數據類型,用于定義對象的屬性和方法。對象是類的實例,它包含類的屬
使用Teachable Machine和Python輕松進行對象檢測
電子發燒友網站提供《使用Teachable Machine和Python輕松進行對象檢測.zip》資料免費下載
發表于 06-27 09:26
?0次下載
python如何保留一位小數
本文將詳細介紹Python中保留一位小數的方法。我們將探討浮點數的基本概念,并提供多種方法來實現精確的小數保留。無論是使用內置函數還是第三方庫,我們將詳細解釋它們的原理和用法。希望通過閱讀本文,您將
mysql中decimal的用法
MySQL中的DECIMAL是用于存儲精確數值的數據類型。DECIMAL可以存儲固定精度和小數位數的值。在MySQL中,DECIMAL數據類型有兩個參數:精度和
decimal類型怎么插數
Decimal是Python中的一個內置模塊,用于處理浮點數操作,它提供了更高精度和更精確的結果。在Python中,我們可以使用Decimal類型來插入和處理
decimal類型怎么定義
decimal類型是一種用于表示十進制數的數據類型。與浮點數類型不同,decimal類型提供了更高的精確度,對于需要精確計算的場景非常有用。在很多編程語言中,如C#、Java和Python,都支持
數據庫中decimal是什么類型
數據庫中decimal是一種用于存儲精確小數的數據類型。在數據庫中,decimal常用于存儲貨幣金額、科學計算和需要精確計算的場景。本文將詳盡、詳實、細致地探討decimal的定義、存
數據庫decimal對應java什么類型
、貨幣計算以及其他需要高精度計算的場景下, BigDecimal 是一個非常重要的數據類型。 在數據庫中, decimal 類型通常用于存儲具有固定精度和小數位數的數值。與其他基本的數值類型(如整型
評論