Jag är inte säker på varför du försöker casta och/eller använda valueOf()
operationer... gör helt enkelt en ny BigDecimal
objekt. Den har en konstruktor för att ta en float, dubbel, sträng, etc.
d.set_cost(new BigDecimal(42.00));
:)
Du kan också ändra din getString()
operationer till getBigDecimal()
.
Så som:
d.set_cost(cursor.getBigDecimal(6));
Detta gör det möjligt att skapa en tillfällig (och onödig)String
eftersom du verkar vara efter att ha fått en BigDecimal
i slutändan i alla fall.
Var bara medveten om värdet ditt ResultSet
returnerar kan inte konverteras till en BigDecimal
som om det är en sträng "abcd" kommer den att kasta ett Exception
, men detta är förmodligen önskvärt eftersom du då har att göra med dålig data.