java之BigDecimal类

Posted jiangjunwei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java之BigDecimal类相关的知识,希望对你有一定的参考价值。

 1 public class Demo5_BigDecimal {
 2 
 3     /*
 4      * A: BigDecimal 概述
 5      *    float和double很容易丢失精度,所以为了精确地表示、计算浮点数,Java提供了BigDecimal
 6      *    不可变的、任意精度的有符号十进制数。
 7      * B:构造方法
 8      *       public BigDecimal(String val)
 9      * C:成员方法
10      *    public BigDecimal add(BigDecimal augend)
11      *    public BigDecimal subtract(BigDecimal subtrahend)
12      *    public BigDecimal multiply(BigDecimal multiplicand)
13      *    public BigDecimal divide(BigDecimal divisor)
14      */
15     public static void main(String[] args) {
16         System.out.println(2.0 - 1.1);    //0.8999999999999999  只能无限接近于0.9
17         
18         BigDecimal b11 = new BigDecimal(2.0);
19         BigDecimal b22 = new BigDecimal(1.1);
20         System.out.println(b11.subtract(b22));    //结果为稍微精确的 0.899999999999999911182158029987476766109466552734375
21         
22         BigDecimal b1 = new BigDecimal("2.0");
23         BigDecimal b2 = new BigDecimal("1.1");
24         System.out.println(b1.subtract(b2));    //通过构造传入字符串的参数时,结果为精确的 0.9
25         
26         BigDecimal bd1 = BigDecimal.valueOf(2.0);
27         BigDecimal bd2 = BigDecimal.valueOf(1.1);
28         System.out.println(bd1.subtract(bd2));   //这种方式也可以得到结果为精确的 0.9
29 
30     }
31 
32 }

 

以上是关于java之BigDecimal类的主要内容,如果未能解决你的问题,请参考以下文章

java之BigDecimal类

Java 避免精度丢失之BigDecimal 运算

Java之BigDecimal 使用总结

Java常用数据类型转换(BigDecimal包装类日期等)

java,BigDecimal使用

java--BigDecimal类