www.5213.net > jAvA.mAth.BigDECimAl CAnnot BE CAst to jAvA.lAn...

jAvA.mAth.BigDECimAl CAnnot BE CAst to jAvA.lAn...

Integer不是基本类型,是int的包装类,无法把包装当做基本类型来用。 比如,char a = 'c'; int b = (Integer)a; 这样也是回报cannot cast错误的。必须是(int)a,用基本类型才能转。这是第一个问题。 第二个问题 你的list.get(i).get("goods_amou...

你这个mth字段应该是超长了,转换不成integer 你改成: if(Long.parseLong((String)list.get(i).get("mth"))-1==j)试试吧! 这个错误应该跟sql没关系,是数据库字段定义的是一个比较长的字符串,比如50位的字符串,那么可能转换成integer就不行了。

它个getObjBySql返回的是BigDecimal类型的 BigDecimal data = (BigDecimal) productPackageDao.getXXX(); 如果想得到int值可以调用 data.intValue()

空指针错误 s7.equals() s7是空的对象,空的对象不时能调用方法的,一调就会出NullPointerException 可以用"....".equals(s7)

数据转换异常 String类型的数字("123")应该进行强制转换成数字类型(123) ,String类型的字符串(“abc”)强制装换成整形,报这个错误。

Object[] record 是一个对象数组 但是list.get(i)是取出集合中的一个对象,若是这个对象是一个Object的数组应该不会报错,很显然,list.get(i)不是数组了把 ,从报出的错误来看就是对象转换异常,list中的应该不是数组

测试了下,代码如下: public static void main(String args[]) { BigDecimal b = new BigDecimal(1); BigDecimal a = b.add(new BigDecimal(2)); System.out.println(b); System.out.println(a); } 输出结果为:1 3 也就是原对象的值没被改变啊...

float和 double 计算的时候 , 主要是减法 , 会丢失精度 , 比如: float a = 1.2f; float b = 1.1f; float c = a-b; System.out.println(c); 这个时候 c是0.100000024 不只是在java中 , 数据库浮点型减法也会有这个问题 而 Decimal 是精确计算 , ...

Object不能直接转化成Integer 你首先需要把它转化成String list.get(i).toString(); 再使用 Integer.valueOf(list.get(i).toString()); 有很多转化都是使用String做中继的。。。

你在百度上分别查一下就知道了 第一个 大多数时候用作计算的,比如在大多数情况下,我们用float double 时,会有精度问题,等等,还有一些常用的运算,比如平方、开平方什么的,都要用到BigDecimal 第二个是对输出结果的,比如 1000 和1,000 100...

网站地图

All rights reserved Powered by www.5213.net

copyright ©right 2010-2021。
www.5213.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com