我写了一个小程序来帮助我完成数学作业:
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()
问题是它会接受一个十进制数,但不会打印出十进制数的值。
我该如何解决这个问题?
答案 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上的维基百科文章。