BigDecimal用法总结

原创 2016年05月31日 18:19:11

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

1.加减乘除

2.设置精度

3.取反

加减乘除分别调用函数

        public BigDecimal add(BigDecimal value);
        public BigDecimal subtract(BigDecimal value);
        public BigDecimal multiply(BigDecimal value);
        public BigDecimal divide(BigDecimal value);

举例:

        BigDecimal a=new BigDecimal(10.0);
        BigDecimal b=new BigDecimal(9.1);
        System.out.println(a.subtract(b));

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

代码如下:

        BigDecimal abig=new BigDecimal(10.0);
        BigDecimal bbig=new BigDecimal(9.1);
        BigDecimal cbig=new BigDecimal(8.9);

        System.out.println(abig.subtract(bbig));
        System.out.println(abig.subtract(cbig));

结果如下:

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

设置精度的方法:

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

0.90
1.10
字符串实例化的方法:

        BigDecimal abig=new BigDecimal("10.0");
        BigDecimal bbig=new BigDecimal("9.1");
        BigDecimal cbig=new BigDecimal("8.9");


取反

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

        System.out.println(abig.negate());
这样就会拿到它的相反数了:

-10.0
这些是这次项目中用到的点





版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Java BigDecimal详解

1.引言         借用《Effactive Java》这本书中的话,float和double类型的主要设计目标是为了科学计算和工程计算。他们执行二进制浮点运算,这是为了在广域数值范围上提供较为...

BigDecimal加减乘除运算

java.math.BigDecimal。BigDecimal一共有4个够造方法,让我先来看看其中的两种用法: 第一种:BigDecimal(double val) Translates a do...

BigDecimal.setScale 处理java小数点

BigDecimal.setScale()方法用于格式化小数点 setScale(1)表示保留一位小数,默认用四舍五入方式 setScale(1,BigDecimal.ROUND_DOWN)直接...
  • ahwr24
  • ahwr24
  • 2011年12月07日 10:14
  • 120352

JAVA BigDecimal 小数点处理

保留两位小数{ 方法一:{    double   c=3.154215;    java.text.DecimalFormat myformat=new java.text.DecimalFo...
  • lhooouuu
  • lhooouuu
  • 2011年12月20日 11:01
  • 202830

BigDecimal 加减乘除

在java 里面,int 的最大值是:2147483647,现在如果想用比这个数大怎么办?换句话说,就是数值较大,这时候就用到了BigDecimal  下载整理了一下BigDecimal 的加减乘...

[java] BigDecimal用法小试

BigDecimal BigDecimal 类提供以下操作:算术、标度操作、舍入、比较、哈希算法和格式转换。 是用户用来控制数值精度和舍入方法的类,适合用于解决数据精度过滤问题。 这里只是作为一...

BigDecimal类的简单用法

一提到Java里面的商业计算,我们都知道不能用float和double,因为他们无法进行精确计算。但是Java的设计者给编程人员提供了一个很有用的类BigDecimal,他可以完善float和doub...

BigDecimal用法详解

一、简介 Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。双精度浮点型变量double可以处理16位有效数。在实际应用中,需要对更大或...

使用BigDecimal(在java中怎么计算货币值)

货币值会经常在金融或电子商务项目中使用。当你处理货币值的时候,经常会面临一个问题——应该用Double还是Float来代表货币的值? 答案是:应该使用java.math.BigDeciaml来代表货...
  • dddaac
  • dddaac
  • 2016年11月08日 09:51
  • 659

BigDecimal比较大小问题

BigDecimal比较大小    这个类是Java里精确计算的类,下面说一下两个BigDecimal对象大小,相等的判断    1比较对象是否相等      一般的对象用于等于,但是BigDecim...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:BigDecimal用法总结
举报原因:
原因补充:

(最多只允许输入30个字)