如果我将元素放入括号(python),乘法给出零

时间:2016-11-23 07:02:55

标签: python division multiplication

如果我在Python中进行一些普通的计算,会发生一些非常奇怪的事情。如果我使用括号进行乘法运算,它会给出正确的结果,但是如果将某些东西设置为括号,则总乘法变为等于零。

对于那些不相信的人(我知道这听起来很奇怪):

>>> print( 1.1*1.15*0.8*171*15625*24*(60/368*0.75)/1000000 )
0.0
>>> print( 1.1*1.15*0.8*171*15625*24*60/368*0.75/1000000 )
7.93546875

this Jupyter screenshot所示。

两次乘法之间的唯一区别在于,第一次在60/368*0.75附近有括号。

这怎么可能,我该怎么做呢?我不知道这是怎么回事。

2 个答案:

答案 0 :(得分:2)

如果在python中除去整数len > 2 and element[0] == 5a,结果就是除法的最低点,因此如果得到bfloor(a,b)=0

使用括号,您可以使用a < b操作60/368

但是如果没有方括号,则0首先乘以前面的所有内容,这会产生一些 double 值,因此将此值除以60不会产生{{1} }}

答案 1 :(得分:2)

括号更改评估顺序,首先评估其中的表达式。这里,由于60和368都是整数文字,因此它们使用integer division进行划分 - 仅表示&#34;整数&#34;部分保留。由于60小于368,它们的整数除法为0.从那时起,结果很明显 - 你有一系列的乘法和除法,其中一个乘数为0,所以最终结果也是0。 / p>

为防止这种情况,您可以将数字表示为浮点文字--60.0和368.0。 (从技术上讲,在这里使用60.0就足够了,但为了保持一致性,我建议将所有数字表示为浮点文字)。