2013-03-09 4 views
0

У меня есть строка, которая выглядит так: «¥ 3,250». Я хочу преобразовать его в float.Конвертировать Йен в Float в Ruby

Я уже пытался что-то вроде этого:

price = "¥3,250" 
    price[0] = "" 
    price.to_f 

но рубин использует запятую (,) в качестве десятичного разделителя.

+1

Поплавок действительно не лучший тип данных для валюты, Fixnum или [BigDecimal] (http: // ruby-do c.org/stdlib-2.0/libdoc/bigdecimal/rdoc/index.html) было бы лучше. –

ответ

2
price_as_float = price.scan(/\d|\./).join('').to_f 

Он должен работать даже с, скажем "¥3,250.4"

Все это делает извлечение цифр и точек из строки и создает строку из него, то литье его на поплавок

0

Вы можете попробовать это:

price = "¥3,250" 
    price.gsub(/[,|¥]/,'').to_f #=> 3250.0