固定位数和精度的浮点数处理对象Decimal

#-*-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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值