Не съм сигурен защо се опитвате да предавате и/или използвате valueOf() операции... просто направете нов BigDecimal обект. Той има конструктор за вземане на float, double, низ и т.н.
d.set_cost(new BigDecimal(42.00));
:)
Можете също да промените своя getString() операции към getBigDecimal() .
Така че като:
d.set_cost(cursor.getBigDecimal(6));
Това заобикаля създаването на временен (и ненужен)String тъй като изглежда след получаване на BigDecimal в крайна сметка все пак.
Просто имайте предвид, ако стойността ви ResultSet returns не може да се преобразува в BigDecimal като че е низ "abcd", тогава той ще изведе Exception , но това вероятно е желателно, тъй като тогава имате работа с лоши данни.