浮点乘法

时间:2016-07-04 06:52:10

标签: python python-2.7 precision

在python中,是否有人知道如何保存无效0,即

x=9999.0
y=.01
print x*y

输出为99.99,但我想要99.990。这可能会发生吗?

我不确定格式是否可以达到此目的。简而言之,我需要保存0

所以它必须是通用的。它也可以是

x=9999.5
y=.01

然后我们不需要格式化那里。只有我们丢失的地方0。它也不需要5数字。它可以更少或更多。所以我们需要检测{{ 1}}我们正在失败,然后追加它

3 个答案:

答案 0 :(得分:3)

您可以使用十进制模块:

>>> from decimal import *
>>> getcontext().prec = 5
>>> Decimal(9999.0) * Decimal(0.01)
Decimal('99.990')

答案 1 :(得分:0)

您可以使用string formatting指定小数点后的数字数。在控制台中试试这个:

>>> print '%.3f' % (9999.0*.01)
99.990

答案 2 :(得分:0)

在2.7版中正常工作

x=9999.0
y=.01
print '%.3f' % (x*y)

了解python格式here