是否有一個簡單的Rails/Ruby幫助函數來幫助您將可讀的數字轉換爲實際的數字?如何將人類可讀數字轉換爲Ruby中的實際數字?
如:
1K => 1000
2M => 2,000,000
2.2K => 2200
1,500 => 1500
50 => 50
5.5M => 5500000
是否有一個簡單的Rails/Ruby幫助函數來幫助您將可讀的數字轉換爲實際的數字?如何將人類可讀數字轉換爲Ruby中的實際數字?
如:
1K => 1000
2M => 2,000,000
2.2K => 2200
1,500 => 1500
50 => 50
5.5M => 5500000
test = {
'1K' => 1000,
'2M' => 2000000,
'2.2K' => 2200,
'1,500' => 1500,
'50' => 50,
'5.5M' => 5500000
}
class String
def human_readable_to_i
multiplier = {'K' => 1_000, 'M' => 1_000_000}[self.upcase[/[KM](?=\z)/]] || 1
value = self.gsub(/[^\d.]/, '')
case value.count('.')
when 0 then value.to_i
when 1 then value.to_f
else 0
end * multiplier
end
end
test.each { |k, v| raise "Test failed" unless k.human_readable_to_i == v }
嘗試是這樣的,如果你有人類可讀的數字比
array.map do |elem|
elem = elem.gsub('$','')
if elem.include? 'B'
elem.to_f * 1000000000
elsif elem.include? 'M'
elem.to_f * 1000000
elsif elem.include? 'K'
elem.to_f * 1000
else
elem.to_f
end
end
數組看看這裏還有,你會發現很多數字助手
'elem = elem.gsub('$','')'是的,世界上除了美元之外沒有貨幣。 – mudasobwa
如何自行轉換它? 'K = 10^3','M = 10^6'等等。如果沒有後綴,只需打印數字,再乘以相同的值並打印出來。 – Shravan40
'2,000,000'不是有效的紅寶石'數字'。 – mudasobwa