Python简单百分比计算返回0

1 投票
4 回答
3621 浏览
提问于 2025-04-18 11:53

好吧,这看起来很简单,但我就是搞不明白。
我需要做一个基本的百分比计算。
这是我的代码:

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

撰写回答