在 Python 中使用除法运算符时,如何得到十进制值?

例如,标准除法符号“/”四舍五入为零:

>>> 4 / 100
0

但是,我希望它返回0.04。我该使用什么?

183459 次浏览

试试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的部分,感谢 Something ΩD? ? ? ? ?

将一个或两个术语作为浮点数,如下所示:

4.0/100.0

或者,打开 Python 3.0中默认的特性“真正的除法”,它可以做你想做的事情。在模块或脚本的顶部,执行:

from __future__ import division

你不能通过将一个整数除以另一个整数来得到一个十进制值,你将总是通过这种方式得到一个整数(结果被截断为整数)。至少需要一个值才能是十进制数。

其他答案建议如何获得浮点值。虽然这将接近你想要的,但它不会是精确的:

>>> 0.4/100.
0.0040000000000000001

如果你真的想要一个 十进制值,这样做:

>>> import decimal
>>> decimal.Decimal('4') / decimal.Decimal('100')
Decimal("0.04")

这将给你一个对象,正确地知道4/100在 基数10是“0.04”。浮点数实际上以2为基数,即二进制,而不是十进制。

您可能还想查看 Python 的 十进制包,这将提供很好的十进制结果。

>>> decimal.Decimal('4')/100
Decimal("0.04")

这里我们给出了两种可能的情况

from __future__ import division


print(4/100)
print(4//100)

从未来图书馆导入分类如下:

from__future__ import division

在代码中添加以下函数及其回调。

# Starting of the function
def divide(number_one, number_two, decimal_place = 4):
quotient = number_one/number_two
remainder = number_one % number_two
if remainder != 0:
quotient_str = str(quotient)
for loop in range(0, decimal_place):
if loop == 0:
quotient_str += "."
surplus_quotient = (remainder * 10) / number_two
quotient_str += str(surplus_quotient)
remainder = (remainder * 10) % number_two
if remainder == 0:
break
return float(quotient_str)
else:
return quotient
#Ending of the function


# Calling back the above function
# Structure : divide(<divident>, <divisor>, <decimal place(optional)>)
divide(1, 7, 10) # Output : 0.1428571428
# OR
divide(1, 7) # Output : 0.1428

该函数是在“欧几里得除法”的基础上实现的。如果您不想在项目中导入任何外部头文件,那么这个函数非常有用。

同义词: 除([除数] ,[除数] ,[小数位(可选))

密码: divide(1, 7, 10)divide(1, 7)

如果有任何疑问,请在下面发表评论。

您也可以尝试在数字的末尾加上一个“ .0”。

4.0/100.0

只是把小数部分放在小数后面。 你试过吗: 4.0/100