本文將介紹Python中 "小數 "模塊的使用指南。它可以用來對浮點數或含有小數點的數字進行各種數學運算。
小數模塊,顧名思義,可以用來處理有小數點的數字或浮動型數字。該模塊中包含的方法有助於對小數點數字進行四捨五入,轉換數字和進行算術計算。它還非常注重精確性和准確性,小數點後的每個數字都被認為是重要的。小數點模塊認為1.40這樣的數字是1.40,而不是1.4。小數點模塊的使用可以通過實例得到最好的理解。下面將對其中的一些例子進行解釋。
你可以在Python中調用十進制構造函數來將一個數字轉換為十進制類型。下面的代碼示例顯示了在整數類型的數字上進行的基本數學除法和小數類型的數字之間的區別。
from decimal import Decimal a = 10 b = 11 c = a / b d = Decimal(a) / Decimal(b) print (c, type(c)) print (d, type(d))
第一條語句從十進制模塊中導入十進制類。接下來,兩個變量 "a "和 "b "被創建,帶有一些值。變量 "c "存儲了一個由變量a除以b產生的數值,然後重復同樣的過程,將數字轉換為十進制類型對象。運行上述代碼示例後,你應該得到以下輸出。
0.9090909090909091 <class 'float'> 0.9090909090909090909090909091 <class 'decimal.Decimal'>
正如你在上面的輸出中看到的,float類型對象顯示的數字比十進制類型對象的精度要低,因為它使用了比十進制類型對象更積極的近似方法。默認情況下,Python中的十進制類型數字最多顯示28個數字。你可以通過調用十進制模塊中的 "getcontext "方法根據你的需要改變這個值。
from decimal import Decimal from decimal import getcontext getcontext().prec = 50 a = 10 b = 11 c = a / b d = Decimal(a) / Decimal(b) print (c, type(c)) print (d, type(d))
在上面的代碼示例中,getcontext函數已經被導入,並且精度位置已經被設置為最多50個位置。getcontext方法可以用來查看線程中的當前上下文,並改變小數模塊的一些默認配置參數。運行上述代碼示例後,你應該得到以下輸出。
0.9090909090909091 <class 'float'> 0.90909090909090909090909090909090909090909090909091 <class 'decimal.Decimal'>
你可以用十進制類型的對象進行任何類型的算術計算,就像你在Python中用float類型的對象進行計算一樣。十進制類型對象中大量的尾部小數可以帶來精確的數字,在金融、會計、關鍵任務的科學應用等方面特別有用。
注意,你可以通過調用主Decimal構造函數,從浮點數、整數和包含數字的字符串中創建十進制類型的數字。
十進制模塊帶有一些預定義的四捨五入模式,你可以用這些模式來捨棄帶有小數點的數字。這些模式被稱為 ROUND_FLOOR, ROUND_CEILING, ROUND_HALF_DOWN, ROUND_HALF_UP, ROUND_UP, ROUND_DOWN, ROUND_HALF_EVEN, 和 ROUND_05UP。根據Python官方文檔,下面是這些模式的各自作用。
下面的代碼示例顯示了這些模式的行為。
import decimal from decimal import Decimal from decimal import getcontext getcontext().prec = 2 getcontext().rounding = decimal.ROUND_FLOOR print (Decimal(3.961) + Decimal(0)) getcontext().rounding = decimal.ROUND_CEILING print (Decimal(3.961) + Decimal(0)) getcontext().rounding = decimal.ROUND_HALF_DOWN print (Decimal(3.705) + Decimal(0)) getcontext().rounding = decimal.ROUND_HALF_UP print (Decimal(3.775) + Decimal(0)) getcontext().rounding = decimal.ROUND_UP print (Decimal(3.775) + Decimal(0)) getcontext().rounding = decimal.ROUND_DOWN print (Decimal(3.609) + Decimal(0)) getcontext().rounding = decimal.ROUND_HALF_EVEN print (Decimal(3.665) + Decimal(0)) getcontext().rounding = decimal.ROUND_05UP print (Decimal(3.675) + Decimal(0))
這個代碼示例非常直接。為四捨五入的數字設置了2位的精度。通過設置 "四捨五入 "對象(主上下文的一部分)的值來改變捨入方法。運行上述代碼樣本後,你應該得到以下輸出,其中每一行都對應著各自的四捨五入模式。
3.9 4.0 3.7 3.8 3.8 3.6 3.7 3.6
你也可以使用十進制模塊中的 "量化 "方法對數字進行捨入。這個過程與上面解釋的方法相同。然而,你可以提供一個指數作為量化方法的參數,將一個數字四捨五入到一個特定的位置,而不是單獨設置精度的數字。下面是一個代碼示例。
import decimal from decimal import Decimal rounded = Decimal(3.961).quantize(Decimal('1.0'), rounding=decimal.ROUND_FLOOR) print (rounded)
指數'1.0'已被提供給quantize方法,四捨五入方法已被作為額外參數提供。它將返回一個X.X格式的數字。運行上述代碼樣本後,你應該得到以下輸出。
3.9
你可以使用小數模塊中的 "比較 "方法來比較任何兩個小數類型的對象。下面的例子顯示了它的用法。
from decimal import Decimal print (Decimal(1.2).compare(Decimal(1.1))) print (Decimal(1.0).compare(Decimal(1.1))) print (Decimal(1.0).compare(Decimal(1.0)))
你可以在一個十進制類型的對象上調用比較方法,並提供另一個數字作為參數。根據被比較的數字,將返回一個0、1或-1的值。值為0表示兩個數字相等,值為1表示第一個數字大於第二個數字,值為1表示第一個數字小於第二個數字。 運行上述代碼樣本後,你應該得到以下輸出。
1 -1 0
盡管小數點模塊最常被用來控制小數點的精度和對小數點後的數字進行四捨五入,但它也有一些其他有用的方法,可以進一步用來操作小數點數字,以產生准確的算術計算結果。本文已經介紹了小數點模塊的基本用法,對大多數情況來說應該是足夠了。
brief introduction :Jira It is
Python Online mall source code