Я импортирую данные из csv, мне нужно преобразовать некоторые значения в BigDecimal и вызвать ошибку, если они не могут быть проанализированы ..
В результате тестирования BigDecimal («недопустимое число») возвращает BigDecimal, равный 0. Это было бы хорошо, но немного грязно, за исключением допустимого значения 0 ...
Float («неверное число») действует по-разному и выдает исключение ...
Мое текущее решение:
class String
def to_bd
begin
Float(self)
rescue
raise "Unable to parse: #{self}"
end
BigDecimal(self)
end
end
Я что-то упустил?