【问题标题】:Division by Zero Errors除以零错误
【发布时间】:2010-09-24 05:35:56
【问题描述】:

我对教授的这个问题有疑问。问题来了:

编写一个函数 typing_speed 的定义,它接收两个参数。第一个是一个人在特定时间间隔内输入的单词数(大于或等于零的 int)。第二个是以秒为单位的时间间隔长度(大于零的 int)。该函数以每分钟字数(浮点数)返回该人的打字速度。

这是我的代码:

def typing_speed(num_words,time_interval):
    if(num_words >= 0 and time_interval > 0):
        factor = float(60 / time_interval)
        print factor
        return float(num_words/(factor))

我知道“因子”被分配为 0,因为它没有被正确四舍五入。我不知道如何正确处理这些小数。 Float 显然没有做任何事情。

感谢任何帮助,谢谢。

【问题讨论】:

    标签: python floating-point decimal division


    【解决方案1】:

    当您在除法结果上调用float 时,事后除法被视为整数除法(注意:这是 Python 2,我假设)。它没有帮助,有什么帮助是最初将除法指定为浮点除法,例如说60.060 的浮点版本):

    factor = 60.0 / time_interval
    

    另一种方法是将 60 除以 float(time_interval)

    注意这个示例交互:

    In [7]: x = 31
    
    In [8]: 60 / x
    Out[8]: 1
    
    In [9]: 60.0 / x
    Out[9]: 1.935483870967742
    

    【讨论】:

    【解决方案2】:

    Sharth 的意思是:from __future__ import python

    例子:

    >>> from __future__ import division
    >>> 4/3
    1.3333333333333333
    >>>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多