关于BigDecimal类的pom.xml中jar依赖

BigDecimal类的使用。

最近写一个接口,遇到很多的数字计算问题,参与计算的数字有int,double,String等各种类型,我们知道这种类型不同的数字在计算的时候转换时非常麻烦的,所以我想到了使用

BigDecimal这个类去转化实现计算。下面说一下这个类的基本用法。用法引用:http://www.cnblogs.com/linjiqin/p/3413894.html
0:找了很多,都没有找到在使用BigDecimal类的时候,pom文件中依赖的引入,下面分享一下

net.contargo
big-decimal-validator
1.3.0

1: 转换数字类型:

   构造器转换:new BigDecimal(int类型);

                         new BigDecimal(long类型);

                         new BigDecimal(double类型);

                         new BigDecimal(String类型);

2: BigDecimal类中的API

                add(BigDecimal  bigDecimal)          相加

                subtract(BigDecimal  bigDecimal)     减法

                multiply(BigDecimal  bigDecimal)     相乘

                divide(BigDecimal  bigDecimal)       相除(看下文)

3: BigDecimal转换成其他类型

                   toString() :转为字符串

                   doubleValue()  :转为double类型

                   intValue()  :转为int类型

                   longValue() :  转为long类型

4:货币格式化

代码如下:

NumberFormat a = NumberFormat.getCurrencyInstance(); //建立货币格式化引用

BigDecimal loanAmount = new BigDecimal(“10000.11”);

System.out.println(a.format(b));输出结果是贷款金额: ¥10,000.11
5:关于BigDecimal大小比较问题:

int result = a.compareTo(b);
当a > b的时候,result = 1;
当a = b的时候,result = 0;
当a < b的时候,result =-1;

6:BigDecimal在做除法运算时候需要注意的问题:

使用BigDecimal做除法运算的时候,有可能除完之后含有小数,也有可能是除不尽的问题,这时我们需要考虑
BigDecimal除法的精确使用。(以下伪代码中a,b都是BigDecimal的实体,位数表示 精确到小数点后几位,如果不需要小数
则位数是0)

伪代码:  a.divide(b,位数,精确方式)  
实列:

  public void run() {
         BigDecimal a = new BigDecimal("10");
         BigDecimal b = new BigDecimal("3");
         BigDecimal c  = a.divide(b,1,ROUND_CEILING);
         System.out.println(c);
  }

 输出结果是3.4

ROUND_CEILING :如果c是正数,则遵循ROUND_UP操作,c是负数,则遵循ROUND_DOWN操作
ROUND_UP :在精确的小数最后一位加 1
ROUND_DOWN :直接舍弃精确小数位数后面的内容
ROUND_HALF_DOWN :如果舍弃部分的第一位数字 > 5,则按ROUND_UP操作,否则按ROUND_DOWN操作
ROUND_HALF_UP :如果舍弃部分的第一位数字 >= 5,则按ROUND_UP操作,否则按ROUND_DOWN操作
ROUND_HALF_EVEN:如果舍弃部分左边的数字为奇数,则作ROUND_HALF_UP;如果它为偶数,则作ROUND_HALF_DO
ROUND_UNNECESSARY:必须能够整除才能使用,否则报错java.lang.ArithmeticException: Rounding necessary。

你可能感兴趣的:(数字计算BigDecimal)