按零错误划分

时间:2010-09-24 05:35:56

标签: python floating-point decimal division

我的教授对这个问题有疑问。这是一个问题:

写一个函数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显然没有做任何事情。

感谢任何帮助,谢谢你。

2 个答案:

答案 0 :(得分:9)

当您在分割结果上调用float时,事后

被视为整数除法(注意:这是Python 2,我假设)。它没有帮助,帮助最初将除法指定为浮点除法,例如通过说60.060的浮点版本):

factor = 60.0 / time_interval

另一种方法是将float(time_interval)

除以60

请注意此示例互动:

In [7]: x = 31

In [8]: 60 / x
Out[8]: 1

In [9]: 60.0 / x
Out[9]: 1.935483870967742

答案 1 :(得分:4)

Sharth的意思是:from __future__ import python

示例:

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