我正在学习Python,为什么在这个例子中使用浮点?

时间:2012-02-03 06:05:28

标签: python variables floating-point

http://learnpythonthehardway.org/book/ex4.html

有一个额外的信用问题要求我解释为什么使用浮点4.0而不是4。

我知道浮点用于准确性,但我无法理解为什么在这个例子中无论如何都需要它。

4 个答案:

答案 0 :(得分:4)

在该特定示例中,实际上似乎不需要浮点而不是int。如果你要用它来划分某些东西会产生影响,但这不会发生在这里。 (即便如此,它取决于你是使用Python 2还是3,因为浮动除法是3中的默认值)。

如果你看下面的评论,zedshaw(作者)承认:

  

МихаилГруздев:为什么4.0用于太空?也许它的驱动程序变量值应该是浮点数?

     
    

zedshaw:简单地介绍浮点作为一个小谜题。从数学角度来说,练习没有多大意义,只是练习。现在继续。

  

答案 1 :(得分:1)

使用浮点是因为在Python中,int除以int会产生intinteger division),此处不在此处。如果您将float除以int或将int除以float,就会获得float

示例:

   4/3
=> 1
   4.0/3
=> 1.3333333333333333
   2*4/3
=> 2
   2*4.0/3
=> 2.6666666666666665

答案 2 :(得分:0)

这是因为有一个叫Integer Division的东西。基本上这意味着如果划分两个整数,结果数必须是整数。因此,例如3/4会导致04/3会导致1。这是因为“真实”数学中的3/4会给你0.75并将0.75变成整数,Python会截断浮点值并留下0。

解决此问题的最简单方法是使用4.0而不是4.将整数转换为浮点并忽略整数除法,因为整数除以float会导致浮点数。 3/4.0就像你想要的那样等于0.75

答案 3 :(得分:-1)

使用整数操作数的算术具有整数结果。

>>> 3 / 2
1