Python简单百分比计算返回0
好吧,这看起来很简单,但我就是搞不明白。
我需要做一个基本的百分比计算。
这是我的代码:
corr = 205
score = 100 * (corr / 225 )
print score
但是结果是 0
。
这是怎么回事呢?写这个的方式不多,但我确实试着换了顺序,还尝试加了 int()
和 float()
,但结果始终是 0
。
4 个回答
1
除了把 corr 转换成浮点数(float)之外:
>>> float(corr) / 255
0.9111111111111111
你还可以把分母也当作浮点数来处理,这样计算出来的结果也会是浮点数:
>>> corr / 225
0
>>> corr / 225.0
0.9111111111111111
2
虽然其他人都给出了正确的答案,但我想指出,你只需要在数字后面加上.0
,这样它就会自动变成一个小数(浮点数)。
corr = 205.0
score = 100 * (corr / 225 )
print score
5
你应该把 corr
转换成 float
类型,这样你就不会得到意外的 int
类型了。
corr = 205
score = 100 * (float(corr) / 225)
print score
>>> 91.11111111111111
5
接着@Germano的回答,
在Python2.7中,
>>> corr = 205
>>> score = 100 * (corr / 225)
>>> print score
0
而在Python3中,自动转换的问题得到了修复。
>>> corr = 205
>>> score = 100 * (corr / 225)
>>> print(score)
91.11111111111111
可以查看这个链接:如何强制让除法结果为浮点数?除法总是向下取整到0