1.介绍
Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。双精度浮点型变量double可以处理16位有效数。在实际应用中,需要对更大或者更小的数进行运算和处理。float和double只能用来做科学计算或者是工程计算,在商业计算中要用java.math.BigDecimal。BigDecimal所创建的是对象,我们不能使用传统的+、-、*、/等算术运算符直接对其对象进行数学运算,而必须调用其相对应的方法。方法中的参数也必须是BigDecimal的对象。构造器是类的特殊方法,专门用来创建对象,特别是带有参数的对象
2.计算
1 BigDecimal add(BigDecimal val) //加法 2 3 BigDecimal subtract(BigDecimal val) //减法 4 5 BigDecimal multiply(BigDecimal val) //乘法 6 7 BigDecimal divide(BigDecimal divisor, int scale, int roundingMode) //除法,第一个参数是除数,第二个参数代表保留几位小数,第三个代表的是使用的模式 8 9 //除法的格式(roundingMode)枚举 10 BigDecimal.ROUND_DOWN:直接省略多余的小数,比如1.28如果保留1位小数,得到的就是1.2 11 12 BigDecimal.ROUND_UP:直接进位,比如1.21如果保留1位小数,得到的就是1.3 13 14 BigDecimal.ROUND_HALF_UP:四舍五入,2.35保留1位,变成2.4 15 16 BigDecimal.ROUND_HALF_DOWN:四舍五入,2.35保留1位,变成2.3 17 18 后边两种的区别就是如果保留的位数的后一位如果正好是5的时候,一个舍弃掉,一个进位。
3.比较
1 BigDecimal compareTo(BigDecimal val) 2 返回结果: -1表示小于;0表示等于;1表示大于