python比较两个数的大小打印较小数_比较python中的小数

您没有以正确的方式使用Decimal.

>>> from decimal import *

>>> Decimal(1./3.) # Your code

Decimal('0.333333333333333314829616256247390992939472198486328125')

>>> Decimal("1")/Decimal("3") # My code

Decimal('0.3333333333333333333333333333')

在“您的代码”中,您实际执行“经典”浮点除法 – 然后将结果转换为小数.浮点引入的错误会传播到您的Decimal.

在“我的代码”中,我做了十进制除法.生成到最后一位数字的正确(但截断)结果.

关于四舍五入.如果您使用货币数据,则必须知道用于业务舍入的规则.如果不是这样,使用Decimal将不会自动解决您的所有问题.这是一个例子:3个股东之间分享100美元.

>>> TWOPLACES = Decimal(10) ** -2

>>> dividende = Decimal("100.00")

>>> john = (dividende / Decimal("3")).quantize(TWOPLACES)

>>> john

Decimal('33.33')

>>> paul = (dividende / Decimal("3")).quantize(TWOPLACES)

>>> georges = (dividende / Decimal("3")).quantize(TWOPLACES)

>>> john+paul+georges

Decimal('99.99')

Oups:错过$.01(银行的免费礼物?)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值