Saya tidak yakin mengapa Anda mencoba mentransmisi dan/atau menggunakan valueOf() operasi... cukup buat BigDecimal baru obyek. Itu memang memiliki konstruktor untuk mengambil float, double, string, dll.
d.set_cost(new BigDecimal(42.00));
:)
Anda juga dapat mengubah getString() operasi ke getBigDecimal() .
Jadi seperti:
d.set_cost(cursor.getBigDecimal(6));
Ini menyiasati pembuatanString temporary sementara (dan tidak perlu) karena Anda tampaknya setelah mendapatkan BigDecimal pada akhirnya.
Perlu diketahui, jika nilai Anda ResultSet pengembalian tidak dapat dikonversi menjadi BigDecimal seperti itu string "abcd" maka itu akan melempar Exception , tetapi ini mungkin diinginkan karena Anda kemudian berurusan dengan data yang buruk.