gpt4 book ai didi

ruby - 如何在 Ruby 中将人类可读的数字转换为计算机可读的数字?

转载 作者:太空宇宙 更新时间:2023-11-03 18:16:56 25 4
gpt4 key购买 nike

我在 Ruby 中使用一个数组,该数组包含一系列人类可读格式的数字(例如,2.5B、1.27M、600,000,其中“B”代表十亿,“M”代表百万)。我正在尝试将数组的所有元素转换为相同的格式。

这是我写的代码:

array.each do |elem|
if elem.include? 'B'
elem.slice! "B"
elem = elem.to_f
elem = (elem * 1000000000)
else if elem.include? 'M'
elem.slice! "M"
elem = elem.to_f
elem = (elem * 1000000)
end
end

但是,当我使用 puts(array) 检查数组的元素时,出现的数字中的“B”和“M”被切掉了,但乘法转换似乎并没有经过已应用(例如,数字现在显示为 2.5、1.27、600,000,而不是 2500000000、1270000、600,000)。

我做错了什么?

最佳答案

首先要注意的是else if在ruby中是elsif。参见 http://www.tutorialspoint.com/ruby/ruby_if_else.htm

这是一个供您试用的工作函数:

def convert_array_items_from_human_to_integers(array)

array.each_with_index do |elem,i|
if elem.include? 'B'
elem.slice! "B"
elem = elem.to_f
elem = (elem * 1000000000)
elsif elem.include? 'M'
elem.slice! "M"
elem = elem.to_f
elem = (elem * 1000000)
end
array[i] = elem
end

return array

end

调用 convert_array_items_from_human_to_integers(["2.5B", "1.2M"])

返回 [2500000000.0, 1200000.0]

关于ruby - 如何在 Ruby 中将人类可读的数字转换为计算机可读的数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24620018/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com