此代码打印 17,但我希望使用浮点执行除法(因此它应该打印 17.5)。如何强制除法为浮点数?
math = 8
physics = 9.5
algebra = 7.50
geometry = 10
**print "My GPA is %d" % ((math + physics + algebra + geometry)/2)**
此代码打印 17,但我希望使用浮点执行除法(因此它应该打印 17.5)。如何强制除法为浮点数?
math = 8
physics = 9.5
algebra = 7.50
geometry = 10
**print "My GPA is %d" % ((math + physics + algebra + geometry)/2)**
%d
用于整数,浮点数使用%f
. 使用%d
浮点数将只打印它的小数部分。
>>> print "My GPA is %f" % ((math + physics + algebra + geometry)/2)
My GPA is 17.500000
或者:
>>> print "My GPA is %.1f" % ((math + physics + algebra + geometry)/2)
My GPA is 17.5
使用新样式字符串格式:
>>> print "My GPA is {:.1f}" .format((math + physics + algebra + geometry)/2)
My GPA is 17.5
另请注意,py2.x 中的整数除法会截断输出并返回一个整数。
要解决此问题,您应该将至少一个操作数转换为浮点数。
>>> 3/2
1
>>> 3/float(2)
1.5
>>> 3/2.
1.5
或导入 python3.x 的divison
:
>>> from __future__ import division
>>> 3/2
1.5