【问题标题】:python simple percentage calculation returning 0 [duplicate]python简单百分比计算返回0 [重复]
【发布时间】:2014-08-23 10:56:03
【问题描述】:

好吧,这似乎真的很微不足道,但我无法弄清楚这一点。 我需要做一个基本的百分比计算。 这是我的代码:

corr = 205
score =  100 * (corr / 225 )
print score 

但结果是0。 怎么会?没有完全不同的方法来写这个,但我确实改变了这个并尝试添加int()s和float()s,但结果总是0

【问题讨论】:

    标签: python math integer division python-2.x


    【解决方案1】:

    您应该将corr 转换为float,这是您得到意想不到的int 的地方

    corr = 205
    score =  100 * (float(corr) / 225)
    print score
    >>>  91.11111111111111
    

    【讨论】:

      【解决方案2】:

      补充@Germano 的回答,

      Python2.7

      >>> corr = 205
      >>> score = 100 * (corr / 225)
      >>> print score
      0
      

      Python3 修复了自动转换。

      >>> corr = 205
      >>> score = 100 * (corr / 225)
      >>> print(score)
      91.11111111111111
      

      How can I force division to be floating point? Division keeps rounding down to 0

      【讨论】:

        【解决方案3】:

        以及将 corr 转换为浮点数:

        >>> float(corr) / 255
        0.9111111111111111
        

        您也可以将分母称为浮点数,这意味着结果也是一个浮点数:

        >>> corr / 225 
        0
        >>> corr / 225.0
        0.9111111111111111
        

        【讨论】:

          【解决方案4】:

          虽然其他人都有正确答案,但我想指出您只需添加.0,它就会自动成为浮点数。

          corr = 205.0
          score =  100 * (corr / 225 )
          print score 
          

          【讨论】:

            猜你喜欢
            • 2018-08-04
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-05-05
            • 2012-09-05
            相关资源
            最近更新 更多