我有一个包含这些值的列表:
['1', '10', '100.3', '1000.4', '1000.42', '150', '200', '250', '304', '32000', '34']
我检查listvalue是否为> 100.2 && < 1000.4
并将值放在一个新列表中。
这是输出:
['1000.4', '1000.42', '150', '200', '250', '304', '400']
我错了什么?
为什么列表中有1000.4和1000.42,为什么100.3不在列表中?
答案 0 :(得分:3)
列表中的项目看起来像我的字符串,当您从字符串转换为数字时,您只得到整数部分。例如,尝试:echo '1000.4' + 0.0
。
使用str2float(item)
的结果与浮点数进行比较。
原因是float支持不是标准的,你需要这样的操作的标准结果,否则脚本在-float和+ float之间是不兼容的。