#-*-coding:utf-8-*-
'''
Created on 2016年3月20日
@author: Zroad
'''
"""
一、Decimal类基础,精准实现小数位数;小数对象就是有固定位数和小数点的浮点数
"""
#1、浮点数不精确处理的结果
print 0.1 + 0.1 + 0.1 - 0.3 #结果不是0,5.55111512313e-17
#2、使用小数对象解决浮点数精度问题
from decimal import Decimal
print type(Decimal('0.1') + Decimal('0.1') + Decimal('0.1') - Decimal('0.3')) #<class 'decimal.Decimal'>
print Decimal('0.1') + Decimal('0.1') + Decimal('0.1') - Decimal('0.3') #0.0
#3、不同精度的小数在表达式中混编时,python自动升级为小数位数最多的
print Decimal('0.10') + Decimal('0.1') + Decimal('0.1') - Decimal('0.3') #0.00
"""
二、设置全局精度:使用模块中的上下文对象设置指定精度和舍入模式
"""
import decimal
decimal.getcontext().prec = 4
print decimal.Decimal(1)/decimal.Decimal(7) #0.1429
print decimal.Decimal(1) + decimal.Decimal(7) #8
print decimal.Decimal(1.1)*decimal.Decimal(7) #7.700
固定位数和精度的浮点数处理对象Decimal
最新推荐文章于 2022-11-16 20:28:59 发布