iT邦幫忙

2024 iThome 鐵人賽

DAY 19
0
Python

Python 數值與數學模組介紹與應用系列 第 19

Day19.04.decimal — 十進制定點和浮點算術3

  • 分享至 

  • xImage
  •  

decimal對象

class decimal.Decimal(value='0', context=None)

依據value構造一個新的Decimal對象。
  • 沒有給value: 傳回Decimal('0')
from decimal import Decimal

d = Decimal()  # 預設為 Decimal('0')
  • 當value是整數i: 直接傳回Decimal('i')
from decimal import Decimal

i = 12
d = Decimal(i)  # 會創建 Decimal('12')
  • 當value是字串s: 轉換成Decimal('s')
from decimal import Decimal

s = '3.14'
d = Decimal(s)  # 會創建 Decimal('3.14')
  • 當value是tuple: 應包含三個組成部分,一個符號(0表示正數1表示負數),一個由數字組成的tuple,以及一個整數指數值。
    範例:
    Decimal(0, (1, 4, 1, 4), -3)將返回Decimal('1.414')

  • 當value是float: 會有較長的小數後數字。
    範例:Decimal(float(12.7)將返回
    Decimal('12.699999999999999289457264239899814128875732421875')

  • 當value是另一個Decimal對象: 直接返回Decimal

from decimal import Decimal

d1 = Decimal('3.14')
d2 = Decimal(d1)  # 會創建 Decimal('3.14')
adjusted()
  • 移出係數最右邊的數字之後,回到調整後的指數,直到只剩下前導數字。
  • 範例: Decimal('321e+5').adjusted() 回傳 7
  • 用途: 用於確定最高有效位元相對於小數點的位置。
as_integer_ratio()
  • Decimal 轉換為一個分數的形式,即兩個整數的元組 (numerator, denominator)
  • 範例: Decimal('3.75').as_integer_ratio() 回傳 (15, 4)
  • 用途: 用於將 Decimal 轉換為分數表示,便於進行進一步的數學操作。
as_tuple()
  • 返回 Decimal 的四個屬性組成的元組:符號、係數、指數、及其小數點位置。
  • 範例: Decimal('123.45').as_tuple() 回傳 DecimalTuple(sign=0, digits=(1, 2, 3, 4, 5), exponent=-2)
  • 用途: 用於檢視 Decimal 的內部表示形式。
canonical()
  • 返回 Decimal 的標準化形式,其中不包含尾隨零,並且以最簡單的形式表示。
  • 範例: Decimal('100.00').canonical() 回傳 Decimal('100')
  • 用途: 用於消除數字中的不必要的尾隨零,並確保 Decimal 的表示為標準化形式。

還有的下一篇在繼續說明...


上一篇
Day18.04.decimal — 十進制定點和浮點算術2
下一篇
Day20.04.decimal — 十進制定點和浮點算術4
系列文
Python 數值與數學模組介紹與應用30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言