我的问题是,当我将BigDecimal
保存在数据库中时(例如:22.21),然后我从数据库中取回BigDecimal
,小数点不再存在(例如:22)
我有以下查询
String statement ="INSERT INTO " + TABLE_NAME + " (amount) VALUES( ? )";
PreparedStatement stmt = DataBase.getInstance().prepareStatement(statement);
//set data
stmt.setBigDecimal(1, payment.getAmount());
// ...
然后我以这种方式从数据库中获取金额:
String q = "SELECT * FROM " + TABLE_NAME + " WHERE project=" + project.getId();
//...
payment.setAmount(rs.getBigDecimal("amount")); // <-- decimal is lost
我的数据库中的金额为:
amount NUMERIC NOT NULL
答案:
MySQL类型应为DECIMAL(x,y)
而不是NUMERIC
。
(这解决了我的问题,谢谢你Andriy)