这个清单有什么问题?

时间:2012-03-30 17:40:34

标签: string list function vim numbers

我有一个包含这些值的列表:

['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不在列表中?

1 个答案:

答案 0 :(得分:3)

列表中的项目看起来像我的字符串,当您从字符串转换为数字时,您只得到整数部分。例如,尝试:echo '1000.4' + 0.0

使用str2float(item)的结果与浮点数进行比较。

原因是float支持不是标准的,你需要这样的操作的标准结果,否则脚本在-float和+ float之间是不兼容的。