在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;