Non sono sicuro del motivo per cui stai provando a trasmettere e/o utilizzare valueOf() operazioni... crea semplicemente un nuovo BigDecimal oggetto. Ha un costruttore per prendere un float, double, string, ecc.
d.set_cost(new BigDecimal(42.00));
:)
Puoi anche cambiare il tuo getString() operazioni su getBigDecimal() .
Così come:
d.set_cost(cursor.getBigDecimal(6));
Questo aggira la creazione di una String temporanea (e non necessaria). poiché sembra che tu stia dopo aver ottenuto un BigDecimal alla fine comunque.
Basta essere consapevoli, se il valore è il tuo ResultSet i rendimenti non possono essere convertiti in un BigDecimal come se fosse una stringa "abcd", verrà generata un'Exception , ma questo è probabilmente desiderato poiché hai a che fare con dati errati.