【Python基础知识库】Python中decimal精确计算

python decimal精确计算

python decimal精确计算

  • (1). Decimal接收int和string类型参数
from decimal import *

# 不能传入浮点数据,因为浮点数据就不准确
a = Decimal(3.33)*100
b = Decimal('3.33')*100
c = Decimal(3)
print(a)
print(b)
print(c)

# 结果
'''
Decimal('333.0000000000000071054273576')
Decimal('333.00')
Decimal('3')
'''
  • (2). 浮点数据转换为Decimal类型
from decimal import *

Decimal.from_float(2.222)

# 结果
'''
Decimal('2.221999999999999975131004248396493494510650634765625')
'''
  • (3). 设定有效数字

特别注意,如果prec的长度比数字的长度小的话,扩充*100时就会出错

from decimal import *

# 保留6个有效数字
getcontext().prec = 6
Decimal(1)/Decimal(7)

# 结果
'''
Decimal('0.142857')
'''
  • (4). 四舍五入,保留几位小数
from decimal import *

# 保留两位小数
Decimal('0.2335662').quantize(Decimal('0.00'))

# 结果
'''
Decimal('0.23')
'''
  • (5). Decimal转化为字符串类型
from decimal import *

# 保留两位小数
str(Decimal('0.2335662').quantize(Decimal('0.00')))

# 结果
'''
'0.23'
'''
相关推荐
©️2020 CSDN 皮肤主题: 精致技术 设计师:CSDN官方博客 返回首页