我注意到在使用带负舍入因子的^{
我使用的是Python 3
(特别是3.6.3
,但我不知道具体的次要版本是否对本例有影响)。在
使用float
它看起来正常:
>>> round(10000 / 3, 2)
3333.33
>>> round(10000 / 3, 1)
3333.3
>>> round(10000 / 3, 0)
3333.0
>>> round(10000 / 3, -1)
3330.0
>>> round(10000 / 3, -2)
3300.0
{cd7>使用科学的四舍五入法修正结果:
^{pr2}$我的快速解决方法是在结果中添加0
,这样可以将符号恢复为“正常”(非科学):
>>> round(Decimal('10000') / 3, -1) + 0
Decimal('3330')
>>> round(Decimal('10000') / 3, -2) + 0
Decimal('3300')
我不认为这是一个bug,因为只有符号而不是实际值会受到影响,但这对我来说还是很奇怪的。在
有人知道我为什么会看到这种行为吗?你知道这是故意的还是一个小错误?在
这是正常的,也是有意的。}有四个有效数字。在
Decimal
跟踪有效数字,十进制repr
用于保留有效数字。Decimal('3.3E+3')
有两个有效数字,而{相关问题 更多 >
编程相关推荐