打印带小数点的数字

时间:2012-01-27 20:28:21

标签: python floating-point type-conversion

好吧我打印带小数点的数字有困难。 当我运行python并要求它进行除法,其中结果必须是带小数点的数字,它不会打印小数点。 例如,我刚刚制作了这个算法:

print 'Report card calculation'
grade1 = input ('Insert the first grade: ')
grade2 = input ('Insert the second grade: ')
grade3 = input ('Insrt the third grade: ')

media = (grade1 + grade2 + grade3) / 3
print 'Your final result is', media

但是当它打印“媒体”时,应该有小数点的数字不带小数点。我该如何解决?

4 个答案:

答案 0 :(得分:2)

最简单的更改:除以3.0而不是3

media = (grade1 + grade2 + grade3) / 3.0

这将确保分配给media的值即使三个等级变量保持整数也是浮点数。

答案 1 :(得分:2)

在文件顶部添加:

from __future__ import division

或使用3.0而不是3.在Python 2中,除以两个整数总是产生一个整数。

答案 2 :(得分:1)

您的操作作为整数除法处理,尝试使用3.0代替3,看看会发生什么。

答案 3 :(得分:1)

在Python 2.x中划分两个整数时,结果将是一个整数。来自Numeric Types的文档:

  

对于(普通或长整数)除法,结果为整数。结果总是向负无穷大舍入:1/2为0,( - 1)/ 2为-1,1 /( - 2)为-1,(-1)/( - 2)为0.注意如果任一操作数是一个长整数,则结果为长整数,无论​​数值如何。

要获得所需的行为,可以将from __future__ import division添加到模块的顶部以使用Python 3 division behavior,或者将分子或分母(或两者)更改为浮点数:

# either of the following would work
media = float(grade1 + grade2 + grade3) / 3
media = (grade1 + grade2 + grade3) / 3.0