如何让我的程序打印浮动?

时间:2016-03-12 21:08:22

标签: python string math floating-point geometry

我写了一个小程序来帮助我完成数学作业:

import math
def saCircle():
    while True: 
        radius = float(raw_input("Enter the radius: "))
        print "\nFinding area with %d as the radius" % radius  
        x = math.pi * radius**2
        print "\nThe area of your circle is %d\n" % x 
saCircle() 

问题是它会接受一个十进制数,但不会打印出十进制数的值。

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:3)

使用%f代替%d(将数字四舍五入为整数)来打印浮点数:

>>> radius = 4.4
>>> x = math.pi * radius**2
>>> print "\nThe area of your circle is %f\n" % x

The area of your circle is 60.821234

This问题很好地解释了差异。

答案 1 :(得分:1)

浮点数的格式说明符是%f,而不是%d%d是整数)。

print "\nFinding area with %f as the radius" % radius
                           ^ 

有关详细信息,请参阅printf format strings上的维基百科文章。