首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

归档-浮点型计算

2012-09-29 
存档--浮点型计算addfloat amount 501.8BigDecimal b new BigDecimal(Float.toString(amount))amoun

存档--浮点型计算
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

热点排行