Se posso darti un consiglio usa la classe BigDecimal che supporta sia i numeri molto grandi che quelli con la virgola ed è come il prezzemolo (va bene con tutto quando si tratta di importi).
Puoi creare un BigDecimal facilmente partendo da un int, da un double, e perfino da una stringa.
BigDecimal prova = new BigDecimal (<doubleValue o doubleVar>);
BigDecimal prova2 = new BigDecimal (<intValue o intVar>);
BigDecimal prova3 = new BigDecimal("0.0165"); // stringa indicante 0,0165
Puoi definire il numero di cifre della parte decimale (dopo la virgola) che desideri usando il metodo setScale ed anche il tipo di arrotondamento:
prova3 = prova3 .setScale(2, BigDecimal.ROUND_HALF_UP);
In questo caso prova3 diventa 0.02.
Se invece usi:
BigDecimal prova3 = new BigDecimal("0.0165"); // stringa indicante 0,0165
prova3 = prova3 .setScale(3, BigDecimal.ROUND_HALF_UP);
allora prova3 diventa uguale a 0.017, cioè da [0 a 4] arrotonda per difetto da [5 a 9] per eccesso.
Ci sono anche altri criteri di arrotondamento. Ti consiglio di guardare la documentazione
Infine per scrivere su DB Oracle ad esempio è facilissim.
Supponendo che hai una query parametrica (con i ?) e che il tuo PreparedStatemend si chiami ps, basta settare il parametro con l'istruzione:
ps.setBigDecimal(<numeroParametro>, nomeVariabileBigDecimal);
Ad esempio se il nostro sql parametrico è:
String sql = "INSERT INTO TABELLAPREZZI (VALOREPREZZO) VALUES (?)"
Connection con = getConnection();
PreparedStatement ps = con.prepareattement(sql);
ps.setBigDecimal(1, prova3);
ps.executeUpdate();
Spero di essere stato abbastanza chiaro.
P.S:
Dimenticavo se ti serve visualizzare il valore basta usare il metodo toString() (prova3.toString()).
Inoltre la classe BigDecimal ha metosi per sottrarre, addizionare e moltiplicare valori.
Vedi la documentazione online.