Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x Python3中奇怪的除法结果_Python 3.x_Division - Fatal编程技术网

Python 3.x Python3中奇怪的除法结果

Python 3.x Python3中奇怪的除法结果,python-3.x,division,Python 3.x,Division,我认为分区的运作有些不一致,但我不确定 在下面的代码中,我希望a//c为100.0,或者b//c为-99.0 a = 1.0 b = -1.0 c = 0.01 print (a/c) print (a//c) print (b/c) print (b//c) 给出: 100.0 99.0 -100.0 -100.0 谢谢这是因为路的缘故。1.0正好是0.01的100倍(就内部表示浮点而言),这不是真的。操作员/执行除法并对结果进行分层,因此内部数字可能略小于100.0,这导致将其分解为9

我认为分区的运作有些不一致,但我不确定

在下面的代码中,我希望a//c为100.0,或者b//c为-99.0

a = 1.0
b = -1.0
c = 0.01

print (a/c)
print (a//c)
print (b/c)
print (b//c)
给出:

100.0
99.0
-100.0
-100.0
谢谢

这是因为路的缘故。
1.0
正好是
0.01
的100倍(就内部表示浮点而言),这不是真的。操作员
/
执行除法并对结果进行分层,因此内部数字可能略小于
100.0
,这导致将其分解为
99.0


此外,Python3.x用于显示与Python2.x相比的浮点数。这意味着
1.0/0.01
的结果(尽管内部略小于
100.0
)将显示为
100.0
,因为算法确定该数字足够接近
100.0
,被视为等于
100.0
。这就是为什么
1.0/0.01
显示为
100.0
的原因,尽管这在内部可能并不表示为确切的数字。

感谢您提供详细的答案。尽管逻辑是明确的,但这种行为在这种直观的操作中会产生误导。@Baba:也许,但这是使用浮点数的注意事项之一。浮点数的数量远远超过了计算机所能准确表示的数量,所以在使用浮点数时要注意这一点。