Python 除零误差
我对教授提出的这个问题有意见。问题是: 编写一个函数的定义,该函数输入两个参数。第一个是一个人在特定时间间隔内键入的字数(大于或等于零的整数)。第二个是以秒为单位的时间间隔长度(大于零的整数)。该函数返回此人的打字速度,单位为每分钟字数(浮点) 这是我的密码:Python 除零误差,python,floating-point,decimal,division,Python,Floating Point,Decimal,Division,我对教授提出的这个问题有意见。问题是: 编写一个函数的定义,该函数输入两个参数。第一个是一个人在特定时间间隔内键入的字数(大于或等于零的整数)。第二个是以秒为单位的时间间隔长度(大于零的整数)。该函数返回此人的打字速度,单位为每分钟字数(浮点) 这是我的密码: def typing_speed(num_words,time_interval): if(num_words >= 0 and time_interval > 0): factor = float(6
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 2)。它没有帮助,帮助的是最初将除法指定为浮点除法,例如说60.0
(60的浮点版本):
另一种方法是将60除以浮动(时间间隔)
请注意此示例交互:
In [7]: x = 31
In [8]: 60 / x
Out[8]: 1
In [9]: 60.0 / x
Out[9]: 1.935483870967742
Sharth的意思是:
来自未来的导入python
例如:
>>> from __future__ import division
>>> 4/3
1.3333333333333333
>>>
对“来自未来进口部门”的评论也可能有所帮助。如果sixty
是一个已声明的整数变量而不是一个文本,则使用factor=float(sixty)/time\u interval
。
>>> from __future__ import division
>>> 4/3
1.3333333333333333
>>>