使用整数除法运算符将数字除以十进制

时间:2014-09-26 15:03:50

标签: python python-2.7

n // float(m)导入division __future__之后的含义是什么意思?

例如:

>>> x = [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]
>>> y = [2.0 // v for v in x]​
>>> print y
[19.0, 9.0, 6.0, 4.0, 4.0, 3.0, 2.0, 2.0, 2.0, 2.0]

2.0 / 0.1应该会产生20.0,但我使用//

得到了19

2.0 / 0.2通常为10,但得到9

2 / 0.4是5.得到4

好的......所以如果它可以是一个完整的类型,它看起来像是从通常的答案中减去1。但是你到了最后一个......

2.0 // 1.0给出2.0。与2.0 / 1.0 ...

相同

2 个答案:

答案 0 :(得分:0)

在Python //中是整数除法运算符,截断结果。因此,它总是采用最接近的最小整数,因为如果将它们视为整数,则浮点数不精确,除非您的数字可以隐式转换为整数。

答案 1 :(得分:0)

许多十进制数不能精确表示为浮点数,因为浮点数是二进制而不是十进制。如果将这些值打印到许多小数位,您可以看到它们的距离和方向:

0.10000000000000000555
0.20000000000000001110
0.29999999999999998890
0.40000000000000002220
0.50000000000000000000
0.59999999999999997780
0.69999999999999995559
0.80000000000000004441
0.90000000000000002220

如果实际数字略高于十进制表示,则除法将变为微弱,而地板将降低1。

请点击此处查看问题说明:https://docs.python.org/2/tutorial/floatingpoint.html

P.S。最多2 ** 53的所有整数都可以精确地表示为浮点数,因此2.0实际上是2.0而1.0实际上是1.0。

我认为你现在已经想到//是一个分区。 float1 // float2floor(float1 / float2)相同。

相关问题