add
subtract
注意:传进去new BigDecimal 的是 String类型。否则同样会丢失精度的问题。
如:
输出结果:都是1.7999878
只有
输出结果:1.7999878
1.8
float amount = 501.8;
BigDecimal b = new BigDecimal(Float.toString(amount));
amount = b
.add(new BigDecimal(request.getParameter("price").trim()))
.floatValue();
subtract
float amount = 501.8;
BigDecimal b = new BigDecimal(Float.toString(amount));
amount = b.subtract(
new BigDecimal(request.getParameter("price").trim()))
.floatValue();
注意:传进去new BigDecimal 的是 String类型。否则同样会丢失精度的问题。
如:
public static void main(String[] args) {
float a = 501.8f;
float b = 500f;
System.out.println(a-b);
BigDecimal c = new BigDecimal(a);
a = c.subtract(
new BigDecimal(b))
.floatValue();
System.out.println(a);
}
输出结果:都是1.7999878
只有
public static void main(String[] args) {
float a = 501.8f;
float b = 500f;
System.out.println(a-b);
BigDecimal c = new BigDecimal(Float.toString(a));
a = c.subtract(
new BigDecimal(Float.toString(b)))
.floatValue();
System.out.println(a);
}
输出结果:1.7999878
1.8