BigDecimal常用 API

来源:互联网 发布:web编程 编辑:程序博客网 时间:2024/06/17 17:54

java.math 包中提供了 API 类 BigDecimal 用来对超过 16位有效位的数进行精确的运算。
BigDecimal 所创建的是对象,所以不能使用 +、-、*、/、等算术运算符直接对其对象进行数学运算。

BigDecimal 一共有4个构造方法:
BigDecimal(int) 创建一个具有参数所指定整数值的对象
BigDecimal(double) 创建一个具有参数所指定双精度值的对象
BigDecimal(long) 创建一个具有参数所指定整数值的对象
BigDecimal(String) 创建一个具有参数所指定以字符串表示的数值的对象。

BigDecimal 运算方式:
BigDecimal add(BigDecimal augend) 加法运算
BigDecimal subtract(BigDecimal subtrahend) 减法运算
BigDecimal multiply(BigDecimal multiplicand) 乘法运算
BigDecimal divide(BigDecimal divisor) 除法运算

BigDecimal 其他方法:
toString)() 将BigDecimal 对象的数值转换成字符串
doubleValue() 将BigDecimal 对象中的值以双精度数返回
floatValue() 将BigDecimal 对象中的值以单精度数返回
longValue() 将BigDecimal 对象中的值以长整数返回
intValue() 将BigDecimal 对象中的值以整数返回

BigDecimal 常用小数点处理:
BigDecimal.setScale 用于格式化小数点
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 则向下舍

public class Demo {    public static void main(String[] args){        BigDecimal account1 = new BigDecimal(0.00);        BigDecimal account2 = new BigDecimal(1.3455);        BigDecimal account3 = BigDecimal.ZERO.setScale(2, RoundingMode.HALF_UP);        System.out.println(BigDecimal.ZERO);        System.out.println(account1);        System.out.println(account2);        System.out.println(account3);        System.out.println("===================");        BigDecimal account4 = account2.setScale(2, BigDecimal.ROUND_UP);        BigDecimal account5 = account2.setScale(2, BigDecimal.ROUND_DOWN);        BigDecimal account6 = account2.setScale(3, BigDecimal.ROUND_HALF_UP);        BigDecimal account7 = account2.setScale(3, BigDecimal.ROUND_HALF_DOWN);        System.out.println(account4);        System.out.println(account5);        System.out.println(account6);        System.out.println(account7);    }}

执行结果:

0 0