SQLite
 sql >> Base de données >  >> RDS >> SQLite

Comment puis-je écrire des valeurs SQLite Real sur des valeurs Java BigDecimal ?

Je ne sais pas pourquoi vous essayez de caster et/ou d'utiliser valueOf() opérations... faites simplement un nouveau BigDecimal objet. Il a un constructeur pour prendre un flottant, un double, une chaîne, etc.

d.set_cost(new BigDecimal(42.00));

:)

Vous pouvez également modifier votre getString() opérations sur getBigDecimal() .

Alors comme :

d.set_cost(cursor.getBigDecimal(6));

Cela évite de créer une String temporaire (et inutile) puisque vous semblez l'être après avoir obtenu un BigDecimal à la fin de toute façon.

Sachez simplement que si la valeur de votre ResultSet les retours ne peuvent pas être convertis en un BigDecimal comme si c'était une chaîne "abcd" alors il lancera une Exception , mais cela est probablement souhaité puisque vous avez alors affaire à de mauvaises données.