Ruby 如何将文本文件中的每个数字乘以10

Ruby 如何将文本文件中的每个数字乘以10,ruby,regex,Ruby,Regex,但无论我尝试什么,它只修改第一行,而我想将每个数字乘以10。 例如: 1 2 3.3 4.5 . . 应该是: 10 20 33 45 但我得到的是: 10.0 只有 我从一个stackoverflow问题中得出了这个结果,并对其进行了修改,但结果仍然相同: f = File.open("c:/Ruby/m.txt", "r+") f.each_line do |line| f.write( line.to_f * 10) end f.close 如果我尝试使用f.puts,我会得到一个

但无论我尝试什么,它只修改第一行,而我想将每个数字乘以10。 例如:

1
2
3.3
4.5 . .

应该是:

10
20
33
45

但我得到的是:

10.0

只有

我从一个stackoverflow问题中得出了这个结果,并对其进行了修改,但结果仍然相同:

f = File.open("c:/Ruby/m.txt", "r+")
f.each_line do |line|
  f.write( line.to_f * 10)
end
f.close

如果我尝试使用f.puts,我会得到一个错误:puts是私有方法吗?如何将每个数字乘以10?

我认为您最好先阅读文件,然后再写入:

lines = File.readlines("c:/Ruby/m.txt").to_a
f = File.open("c:/Ruby/m.txt", "w")
lines.each do |line|
  f.write((line.to_f * 10).to_i)
end
f.close

我认为你最好先读文件,然后再写:

lines = File.readlines("c:/Ruby/m.txt").to_a
f = File.open("c:/Ruby/m.txt", "w")
lines.each do |line|
  f.write((line.to_f * 10).to_i)
end
f.close

我希望你不介意,但为什么地图在这里工作,而不是选择,根据这一点,它应该返回true,false…@Mark读取bjhaid的值,示例中没有小数点后一位以上的数字,但不知道通常情况是否如此。考虑修改你的答案,以便<代码> 3.45=34.5 。@ CysSWoVLand读取他想要整数而不是浮点值的问题,你可能是对的,尽管可以解释,没有小数部分的浮点应该写成没有十进制的文件,但我们不要在大头针上跳舞。我希望你不介意,但为什么地图在这里工作而不选择,根据这一点,它应该返回true,false…@Mark阅读bjhaid的示例,示例中没有超过一个小数位的数字,但不知道通常情况是否如此。考虑修改你的答案,以便<代码> 3.45=34.5 。@ CySwitoValand读取他想要整数而不是浮点值的问题,你可能是对的,尽管可以解释,没有小数部分的浮点应该被写入文件,而不是小数,但是我们不能在PIN头上跳舞。