Double amount = 0.001
但金额值设为 0.0010
我们在结束时有严格的条件,只允许 3位小数才能存储到DB中。但不知何故,它最后附加了 0 。
我试过了
DecimalFormat decimalFormat = new DecimalFormat("#.###");
String formatedString = decimalFormat.format(amount));
此时formatedString
在0.001中是正确的。但如果我再改回Double。
Double.valueOf(decimalFormat.format(formatedString));
它最后在0.0010结束时加0。如何在默认情况下为Double类型删除0?
答案 0 :(得分:1)
就Double而言,0.001和0.0010是相同的。如果您将数据库中的数据存储为double,那么一切都很好,您应该看到的是用于显示值的任何程序的格式。
答案 1 :(得分:0)
您可以使用班级sbQry.append(column in (:collection));
Query query = session.createSQLQuery(sbQry.toString());
query.setParameterList("collection",myCollection);
根据需要定义比例和舍入模式。即:
BigDecimal
https://docs.oracle.com/javase/8/docs/api/java/math/BigDecimal.html