我想测试电压是否在允许的范围内:
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
值。为什么?我应该怎么做才能解决它?
答案 0 :(得分:1)
range
返回值列表,in
检查成员资格 它需要整数参数(我从你的代码中得到TypeError
。)
你正在寻找的是一个浮点"在"之间。比较。
写的是
if -ERROR_VOLTAGE <= Vbatt-SET_VOLTAGE <= ERROR_VOLTAGE:
或者
if abs(Vbatt-SET_VOLTAGE) <= ERROR_VOLTAGE: