Não sei por que você está tentando converter e/ou usar
valueOf() operações... simplesmente crie um novo BigDecimal objeto. Ele tem um construtor para usar float, double, string, etc. d.set_cost(new BigDecimal(42.00));
:)
Você também pode alterar seu
getString() operações para getBigDecimal() . Assim como:
d.set_cost(cursor.getBigDecimal(6));
Isso evita a criação de uma
String temporária (e desnecessária) já que você parece estar depois de obter um BigDecimal enfim. Apenas esteja ciente, se o valor do seu
ResultSet retornos não podem ser convertidos em um BigDecimal como se fosse uma string "abcd", ele lançará uma Exception , mas isso provavelmente é desejado, pois você está lidando com dados incorretos.