java.math.BigDecimal的用法及加减乘除计算
目录
java.math.BigDecimal及加减乘除计算
BigDecimal简介
BigDecimal构造方法
将 BigInteger转换成 BigDecimal
一个转换的字符数组表示 BigDecimal成 BigDecimal ,接受字符作为的相同序列 BigDecimal(String)构造
将 double转换为 BigDecimal ,这是 double的二进制浮点值的精确十进制表示
将 int成 BigDecimal
将 long成 BigDecimal
将BigDecimal的字符串表示 BigDecimal转换为 BigDecimal
BigDecimal 常用方法 加减乘除运算
BigDecimal a = new BigDecimal(6);
BigDecimal b = new BigDecimal(5);
a.add(b); //a+b 加
a.subtract(b); // a-b 减
a.multiply(b); // a*b 乘
a.divide(b);// a/b 除
a.doubleValue();//转换成双精度 double类型
a.floatValue(); //转换成单精度 float类型
a.longValue(); //转换成长整形 long 类型
a.intValue(); //转换成整形 int 类型
a.pow(3);//a的3次方
a.abs();//a的绝对值
a.negate();//a的负数
BigDecimal数值比较
BigDecimal a = new BigDecimal(6);
int i = a.compareTo(BigDecimal.ZERO); //和0做比较
i==-1;//表示a小于0
i==0;//表示a=0
i==1;//表示a大于0
boolean b1 = a.subtract(b).compareTo(BigDecimal.ZERO) > 0;//判断a-b是否大于0
BigDecimal常见异常
java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result。
原因:
JAVA中如果用BigDecimal做除法的时候一定要在divide方法中传递第二个参数,定义精确到小数点后几位,否则在不整除的情况下,结果是无限循环小数时,就会抛出以上异常。
解决办法:
a.divide(b,4,RoundingMode.HALF_UP));
第二个参数是保留小数位数
第三个代表模式
模式:
心得
BigDecimal 主要用来操作(大)浮点数,BigInteger 主要用来操作大整数(超过 long 类型)。
BigDecimal 的实现利用到了 BigInteger, 所不同的是 BigDecimal 加入了小数位的概念。
java.math.BigDecimal 比较大小
BigDecimal a = new BigDecimal (101);
BigDecimal b = new BigDecimal (111);
//使用compareTo方法比较
//注意:a、b均不能为null,否则会报空指针
if(a.compareTo(b) == -1){
System.out.println("a小于b");
}
if(a.compareTo(b) == 0){
System.out.println("a等于b");
}
if(a.compareTo(b) == 1){
System.out.println("a大于b");
}
if(a.compareTo(b) > -1){
System.out.println("a大于等于b");
}
if(a.compareTo(b) < 1){
System.out.println("a小于等于b");
}
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
相关文章
- AIDE集成开发环境(AIDE Android Java IDE) v3.2.2 安卓汉化版
- 什么是递归?用Java写一个简单的递归程序
- 基于java.lang.IllegalArgumentException异常报错问题及解决
- 解决SpringMVC 返回Java8 时间JSON数据的格式化问题处理
- 关于Java实体类Serializable序列化接口的作用和必要性解析
- ChatGpt都使用的Java BPE分词算法不要了解一下
- 利用Java制作字符动画实例代码
- 详细介绍Java关键字throw throws Throwable的用法与区别
- 一行JavaScript代码如何实现瀑布流布局
- 深度剖析Java成员变量、局部变量和静态变量的创建和回收时机