在Python中使用除法运算符时,如何获得小数值?
例如,标准分割符号“/”舍入为零:
>>> 4 / 100 0
但是,我希望它返回0.04。 我用什么?
有三个选项:
>>> 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
,感谢ΤΖΩΤΖΙΟΥ !
其他答案build议如何获得浮点值。 虽然这样会接近你想要的,但并不是确切的:
>>> 0.4/100. 0.0040000000000000001
如果你真的想要一个十进制值,做到这一点:
>>> import decimal >>> decimal.Decimal('4') / decimal.Decimal('100') Decimal("0.04")
这将给你一个对象,正确地知道基地10的4/100是“0.04”。 浮点数实际上是以2为底的,即二进制,而不是十进制。
使一个或两个术语浮点数,如下所示:
4.0/100.0
或者,打开Python 3.0中默认的function,即“真正的分割”,即可实现所需function。 在模块或脚本的顶部,执行:
from __future__ import division
您需要告诉Python使用浮点值,而不是整数。 你可以简单地在input中使用小数点:
>>> 4/100.0 0.040000000000000001
你也可以看看Python的十进制包。 这将提供很好的小数结果。
>>> decimal.Decimal('4')/100 Decimal("0.04")
尝试4.0 / 100
简单的路线4 / 100.0
要么
4.0 / 100
你不能得到一个十进制值通过一个整数除以另一个,你会总是得到一个整数这样(结果截断为整数)。 您至less需要一个值作为十进制数。
请考虑下面的例子
float tot=(float)31/7;