附加0的双值附加

时间:2018-03-27 11:40:45

标签: java floating-point floating-accuracy

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?

2 个答案:

答案 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