x在范围函数中用于python中的float

时间:2016-08-29 13:11:43

标签: python-2.7

我想测试电压是否在允许的范围内:

SET_VOLTAGE = 13
ERROR_VOLTAGE = 0.5
Vbatt = 12.86
if Vbatt in range ((SET_VOLTAGE-ERROR_VOLTAGE),(SET_VOLTAGE+1+ERROR_VOLTAGE)):
    print'True - Value in range'
else:
     print'False - Value out of range'

此代码始终打印False值。为什么?我应该怎么做才能解决它?

1 个答案:

答案 0 :(得分:1)

range返回值列表in检查成员资格

它需要整数参数(我从你的代码中得到TypeError。)

你正在寻找的是一个浮点"在"之间。比较。

写的是

if -ERROR_VOLTAGE <= Vbatt-SET_VOLTAGE <= ERROR_VOLTAGE:

或者

if abs(Vbatt-SET_VOLTAGE) <= ERROR_VOLTAGE: