关于BigDecimal函数

刚开始接触报表,对以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);



猜你喜欢

转载自blog.csdn.net/lms279151398/article/details/80409628
今日推荐