关于BigDecimal函数

本文介绍使用BigDecimal类型处理报表中大量小数位数的问题。通过对比double、long等类型,发现BigDecimal能有效避免精度损失,提供了加减乘除及比较大小等功能,并支持指定小数位数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值