Я импортирую данные из csv, я должен бросить некоторые значения в BigDecimal и повысить ошибку, если они не могут быть проанализированы..
От тестирования BigDecimal ("неверный номер") возвращает BigDecimal 0. Это было бы в порядке, но довольно грязное, кроме допустимого значения 0...
Плавание ("неверный номер") действует по-другому и выдает исключение...
Мое текущее решение:
class String
def to_bd
begin
Float(self)
rescue
raise "Unable to parse: #{self}"
end
BigDecimal(self)
end
end
Действительно ли я являюсь полностью пропавшим что-то?
в простом случае вы можете использовать RegExp
'123.4' =~ /^[+-]{0,1}\d+\.{0,1}\d*$/
=> 0