Sto importazione di dati da un file CSV, ho bisogno di lanciare alcuni valori di BigDecimal, e generare un errore se non possono essere analizzati ..Come faccio a sapere se un BigDecimal non è stato analizzato?
Da test, BigDecimal ("numero non valido") restituisce un BigDecimal 0. Questo sarebbe stato ok, ma tipo di disordinato, ad eccezione di un valore valido è 0 ...
Float ("numero non valido") agisce in modo diverso e genera un'eccezione ...
mia soluzione attuale è :
class String
def to_bd
begin
Float(self)
rescue
raise "Unable to parse: #{self}"
end
BigDecimal(self)
end
end
Sono assolutamente mancante s omething?
Sono d'accordo con voi, questo è stravagante e incoerente. – jcollum