刚开始接触报表,对以N位小数台返回来的number类型,我想了很多办法去获取以至于不让其报错并正常显示,一开始想到是double,long类型,然后开始一系列的转换,强转,因为小数位太大,最后转换为Object[]才成功,然后再去取值,这尼玛实在是麻烦至极啊,可能也是因为之前很少用BigDecimal类型,接触少知道的也不多,最后才知道,因为报表数据的小数位很多,前面的转换满足不了,BigDecimal类型是专门针对性的去解决这个问题,然后2行代码瞬间代替了一堆的转换。
初始值定义:BigDecimal balTotal =BigDecimal.ZERO;
赋值:BigDecimal hundred=new BigDecimal("100");
加法: baltotal.add(hundred);
减法: baltotal.subtract(hundred);
乘法:baltotal.multiply(hundred);
除法:baltotal.divide(hundred);
比较大小:int a =baltotal.compareTo(hundred);//baltotal与参数做比较,a>0或(a=1)则baltotal大,a=0则baltotal等于参数,a<0或(a=-1)则baltotal小
保留小数位50位:baltotal.divide(hundred,50,BigDecimal.ROUND_HALF_UP);