读书人

归档-浮点型计算

发布时间: 2012-09-29 10:30:01 作者: rapoo

存档--浮点型计算
add

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

读书人网 >Web前端

热点推荐