在Python中使用除法运算符时,如何获取十进制值?
时间:2020-03-06 14:33:43 来源:igfitidea点击:
例如,标准除法符号" /"四舍五入为零:
>>> 4 / 100 0
但是,我希望它返回0.04. 我要用什么?
解决方案
尝试4.0 / 100
简单路线4 / 100.0
或者
4.0 / 100
我们需要告诉Python使用浮点值,而不是整数。我们可以简单地通过在输入中使用小数点来做到这一点:
>>> 4/100.0 0.040000000000000001
共有三个选项:
>>> 4 / float(100) 0.04 >>> 4 / 100.0 0.04
与C,C ++,Java等的行为相同,或者
>>> from __future__ import division >>> 4 / 100 0.04
我们还可以通过将参数-Qnew传递给Python解释器来激活此行为:
$ python -Qnew >>> 4 / 100 0.04
第二个选项将是Python 3.0中的默认选项。如果要使用旧的整数除法,则必须使用//
运算符。
编辑:添加了有关-Qnew
的部分,谢谢!
将一个或者两个术语设为浮点数,如下所示:
4.0/100.0
或者,打开Python 3.0中默认的功能,即"真正的分裂",该功能可以满足需求。在模块或者脚本的顶部,执行以下操作:
from __future__ import division
我们不能通过将一个整数除以另一个而获得十进制值,否则总会以这种方式获得一个整数(结果被截断为整数)。我们至少需要一个值作为十进制数。
其他答案建议如何获取浮点值。尽管此wlil接近我们想要的,但它不是精确的:
>>> 0.4/100. 0.0040000000000000001
如果我们实际上想要一个十进制值,请执行以下操作:
>>> import decimal >>> decimal.Decimal('4') / decimal.Decimal('100') Decimal("0.04")
这将为我们提供一个对象,该对象正确知道以10为底的4/100为" 0.04"。浮点数实际上以2为底,即二进制而不是十进制。
我们可能还想看看Python的十进制软件包。这将提供不错的十进制结果。
>>> decimal.Decimal('4')/100 Decimal("0.04")