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'
'''

本文介绍了Python中decimal模块用于精确计算的功能,包括Decimal类型接受的参数类型、浮点数转换、设置有效数字、四舍五入以及将Decimal转换为字符串的方法。强调了在设定有效数字时需要注意的细节。
8万+

被折叠的 条评论
为什么被折叠?



