我有以下代码:
input=File.open("lala.txt","r")
genes=[]
input.each_line{|li|
keys=li.split("\t")
length=keys.length
puts(keys[length-2])
puts(keys[length-2].to_f)
if (keys[0]["-"].class==NilClass && keys[1]["-"].class==NilClass && (keys[length-2]).to_f>0.98)
genes.push(keys[0])
genes.push(keys[1])
end
}
输入文件:
1053_at/RFC2 203696_s_at/RFC2 0.9031699692435061
117_at/HSPA6 1553158_at/C3orf34 0.9079515773059148
117_at/HSPA6 1553513_at/VNN3 0.9237382047518812
117_at/HSPA6 1553723_at/GPR97 0.9367168572635286
117_at/HSPA6 1557852_at/--- 0.9177916032275163
117_at/HSPA6 1558525_at/--- 0.9229865774037962
117_at/HSPA6 1562481_at/--- 0.9109034368848434
117_at/HSPA6 1569385_s_at/TET2 0.9187904542249753
117_at/HSPA6 1569830_at/PTPRC 0.900051189462974
117_at/HSPA6 1569955_at/--- 0.9028606652628463
117_at/HSPA6 201393_s_at/IGF2R 0.9090699277161238
我的问题如下:我想将每行中的数字与 >0.98 进行比较。
如果我写它只是keys[length-2]>0.98
它向我显示一个错误,我想将一个字符串与一个浮点数进行比较。好的。让我们将 String 转换为 Float,然后这样做: (keys[length-2]).to_f 。在转换它但它破坏了数字:我得到 0.0
输出:
0.9031699692435061
0.0
0.9079515773059148
0.0
0.9237382047518812
0.0
0.9367168572635286
0.0
0.9177916032275163
0.0
0.9229865774037962
0.0
0.9109034368848434
0.0
0.9187904542249753
0.0
0.900051189462974
0.0
0.9028606652628463
0.0
0.9090699277161238
0.0
0.9002336615360215
0.0
那有什么问题?(Ruby:linux 1.9.3)提前谢谢