关于Double数值相加的问题 Doublejava 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不要用double进行计算用BigDecimal的add来进行+法运算 double是浮点数,不精确的,不能用于精确运算,特别是和钱相关的,千万别用double! 处理金额?怎么能用double,而且有必要用double吗。。直接int不行吗? 更改: //计算总金额 it = null;; countfree=0.0; it = list2.iterator(); while (it.hasNext()) { Object[] obj = (Object[]) it.next(); obj[31] = obj[31]==null ? 0 : obj[31]; countfree = Util.add(Double.parseDouble(obj[31].toString()), countfree); //countfree += Double.parseDouble(obj[31].toString()); } DecimalFormat df = new DecimalFormat("0.00"); String num = df.format(countfree); public static double add(double v1, double v2) { BigDecimal b1 = new BigDecimal(Double.toString(v1)); BigDecimal b2 = new BigDecimal(Double.toString(v2)); return b1.add(b2).doubleValue(); }通过Bigdecimal累加后还是不行 的确,那用什么好呢通常用long比较好,就是你想保留两位小数,可以先乘100,都换成long的整数再运算! 有小数位用最小币额作单位啊,比如分,int如果范围太小就用long public static BigDecimal add(String s1,String s2){ BigDecimal d1 = new BigDecimal(s1); BigDecimal d2 = new BigDecimal(s2); return d1.add(d2); } FCKeditor未定义错误 GlassFish这个东东怎么样呢, cxf集成spring在tomcat5.5发布时候的问题 谁哪有Spring整个框架的类图? 关于spring jpa的几个小疑问 高手请进!Hibernate 关系表联合的问题,怎么也解决不了? 求hibernate 能在tomcat下跑起来的web应用 范例 怪异Struts Logic Iterator Tag问题 要写一个系统分析 请问有用jdk1.4 和 jdbc 连接sqlserver成功的吗. Java如何获取系统信息? 不用servlet如何处理请求呢。
it = null;;
countfree=0.0;
it = list2.iterator();
while (it.hasNext()) {
Object[] obj = (Object[]) it.next();
obj[31] = obj[31]==null ? 0 : obj[31];
countfree = Util.add(Double.parseDouble(obj[31].toString()), countfree);
//countfree += Double.parseDouble(obj[31].toString());
}
DecimalFormat df = new DecimalFormat("0.00");
String num = df.format(countfree);
public static double add(double v1, double v2) {
BigDecimal b1 = new BigDecimal(Double.toString(v1));
BigDecimal b2 = new BigDecimal(Double.toString(v2));
return b1.add(b2).doubleValue();
}通过Bigdecimal累加后还是不行
通常用long比较好,就是你想保留两位小数,可以先乘100,都换成long的整数再运算!
用最小币额作单位啊,比如分,int如果范围太小就用long
public static BigDecimal add(String s1,String s2){
BigDecimal d1 = new BigDecimal(s1);
BigDecimal d2 = new BigDecimal(s2);
return d1.add(d2);
}