我是靠谱客的博主 大气楼房,最近开发中收集的这篇文章主要介绍java中BigDecimal的用法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

BigDecimal常用于金额的计算,下面总结下这次项目中BigDecimal的用法。

1.加减乘除

2.设置精度

3.取反

加减乘除分别调用函数

[java]  view plain  copy
  1. public BigDecimal add(BigDecimal value);  
  2. public BigDecimal subtract(BigDecimal value);  
  3. public BigDecimal multiply(BigDecimal value);  
  4. public BigDecimal divide(BigDecimal value);  

举例:

[java]  view plain  copy
  1. BigDecimal a=new BigDecimal(10.0);  
  2. BigDecimal b=new BigDecimal(9.1);  
  3. System.out.println(a.subtract(b));  

精度设置,为什么会设置精度,给大家看个效果

代码如下:

[java]  view plain  copy
  1. BigDecimal abig=new BigDecimal(10.0);  
  2. BigDecimal bbig=new BigDecimal(9.1);  
  3. BigDecimal cbig=new BigDecimal(8.9);  
  4.   
  5. System.out.println(abig.subtract(bbig));  
  6. System.out.println(abig.subtract(cbig));  

结果如下:

[java]  view plain  copy
  1. 0.9000000000000003552713678800500929355621337890625  
  2. 1.0999999999999996447286321199499070644378662109375  
并不是我们希望看到的0.9和1.1,原因就是转成二进制的时候会有精度问题,导致这样的结果。所以我们可以在运算的时候加精度,也可以在实例化BigDecimal的时候用字符串。

设置精度的方法:

[java]  view plain  copy
  1. System.out.println(abig.subtract(bbig).setScale(2, BigDecimal.ROUND_HALF_UP));  
  2. System.out.println(abig.subtract(cbig).setScale(2, BigDecimal.ROUND_HALF_UP));  
这样设置两位精度就可以啦

[java]  view plain  copy
  1. 0.90  
  2. 1.10  
字符串实例化的方法:

[java]  view plain  copy
  1. BigDecimal abig=new BigDecimal("10.0");  
  2. BigDecimal bbig=new BigDecimal("9.1");  
  3. BigDecimal cbig=new BigDecimal("8.9");  


取反

因为Bigdecimal是无法直接用+-*/这些符号进行计算的,所以取反的时候也需要一个单独的方法来实现:

[java]  view plain  copy
  1. System.out.println(abig.negate());  
这样就会拿到它的相反数了:

[java]  view plain  copy
  1. -10.0  

最后

以上就是大气楼房为你收集整理的java中BigDecimal的用法的全部内容,希望文章能够帮你解决java中BigDecimal的用法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部