Jeg er ikke sikker på, hvorfor du prøver at caste og/eller bruge valueOf() operationer... lav blot en ny BigDecimal objekt. Den har en konstruktør til at tage en float, double, streng osv.
d.set_cost(new BigDecimal(42.00));
:)
Du kan også ændre din getString() operationer til getBigDecimal() .
Så gerne:
d.set_cost(cursor.getBigDecimal(6));
Dette undgår at skabe en midlertidig (og unødvendig)String da du ser ud til at være efter at have fået en BigDecimal i sidste ende i hvert fald.
Bare vær opmærksom på, hvis værdien dit ResultSet returnerer kan ikke konverteres til en BigDecimal ligesom det er en streng "abcd", så vil den kaste en Exception , men dette er sandsynligvis ønsket, da du så har med dårlige data at gøre.