首页 > 其他 > 详细

BigDecimal代码示例

时间:2019-07-22 22:51:01      阅读:96      评论:0      收藏:0      [点我收藏+]

在平常开发中,如果涉及到计算,要求准确的精度,比如单价*数量=总价之类的计算,那么得用到BigDecimal。

初始化

如下:

BigDecimal numBigDecimal=new BigDecimal(5.33);

四舍五入,保留位数

setScale(1);//表示保留以为小数,默认用四舍五入方式 
setScale(1,BigDecimal.ROUND_DOWN);//直接删除多余的小数位,如2.35会变成2.3 
setScale(1,BigDecimal.ROUND_UP);//进位处理,2.35变成2.4 
setScale(1,BigDecimal.ROUND_HALF_UP);//四舍五入,2.35变成2.4
setScaler(1,BigDecimal.ROUND_HALF_DOWN);//2.35变成2.3,如果是5则向下舍

加减乘除

加法 add()函数 减法subtract()函数
乘法 multipy()函数 除法divide()函数 绝对值abs()函数
重点注意除法,详细参数为

pubilc BigDecimal divide(BigDecimal divisor, int scale, int roundingMode)

其中divisor为除数,scale为小数点位数, roundingMode表示是否四舍五入。
示例如下:

import java.math.BigDecimal;

public class BigDecimalDivideTest {
    public static void main(String[] args) {
        BigDecimal bigDecimal1=new BigDecimal(230.08);
        BigDecimal bigDecimal2=new BigDecimal(20);
                //除法,保留两位,四舍五入
        BigDecimal bigDecimal3=bigDecimal1.divide(bigDecimal2,2,BigDecimal.ROUND_HALF_UP);
        System.out.println(bigDecimal3);
    }
}

比较大小

比较大小,可以用compareTo()函数。
常用的常量有BigDecimal.ZERO表示零。

import java.math.BigDecimal;

public class BigDecimalTest {
    public static void main(String[] args) {
        BigDecimal detailAmount=new BigDecimal(-11);
        BigDecimal positiveDetailAmount=new BigDecimal(11);
        int result=BigDecimal.ZERO.compareTo(detailAmount);
        int result2=BigDecimal.ZERO.compareTo(positiveDetailAmount);
        System.out.println(result);
        System.out.println(result2);
    }
}

参考资料:
https://blog.csdn.net/haiyinshushe/article/details/82721234

BigDecimal代码示例

原文:https://www.cnblogs.com/expiator/p/11228719.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!