java BigDecima

package net.elaina.BigDecimaTest;

import java.math.BigDecimal;

public class Test1 {
   public static void main(String[] args) {
       /*构造方法获取BigDecimal对象
       public BigDecimal(double val)
       public BigDecimal(String val)

       静态方法获取BigDecimal对象
       public static BigDecimal value0f(double val)*/

       //1.通过传递double类型的小数来创建对象
       //细节:
       //这种方式有可能是不精确的,所以不建议使用
       //BigDecimal bd1 = new BigDecimal(0.01);
       //BigDecimal bd2 = new BigDecimal(0.09);
       // .system.out.println(bd1);
       // system.out.println(bd2);

       //2.通过传递字符串表示的小数来创建对象
       BigDecimal bd1 = new BigDecimal("0.01");
       BigDecimal bd2 = new BigDecimal("0.09");
       BigDecimal bd3 = bd2.add(bd1);
       System.out.println(bd1);
       System.out.println(bd2);
       System.out.println(bd3);

       //3.通过静态方法获取对象
       BigDecimal bd6 = BigDecimal.valueOf(10);
       BigDecimal bd7 = BigDecimal.valueOf(10);
       System.out.println(bd6 == bd7);

       //细节:
       //1.如果要表示的数字不大,没有超出double的取值范围,建议使用静态方法
       //2.如果要表示的数字比较大,超出了double的取值范围,建议使用构造方法
       //3.如果我们传递的是0~10之间的整数,包含e,包含10,那么方法会返回已经创建好的对象,不会重新new
   }
}

package net.elaina.BigDecimaTest;

import java.math.BigDecimal;
import java.math.RoundingMode;

public class Test2 {
    public static void main(String[] args) {
        /*
        public BigDecimal add(BigDecimal val)                           加法
        public BigDecimal subtract(BigDecimal val)                      减法
        public BigDecimal multiply(BigDecimal val)                      乘法
        public BigDecimal divide(BigDecimal val)                        除法
        public BigDecimal divide(BigDecimal val,精确几位,舍入模式)      除法
          */

        //1.加法
        BigDecimal bd1 = BigDecimal.valueOf(10.0);
        BigDecimal bd2 = BigDecimal.valueOf(3.0);
        //BigDecimal bd3 = bd1.add(bd2);
        //System.out.println(bd3);

        //2.减法
        BigDecimal bd4 = bd1.subtract(bd2);
        //System.out.println(bd4);

        //3.乘法
        BigDecimal bd5 = bd1.multiply(bd2);
        //System.out.println(bd5);

        //4.除法
        BigDecimal bd6 = bd1.divide(bd2,2, RoundingMode.HALF_UP);
        System.out.println(bd6);//3.33
    }
}

posted @ 2023-12-01 22:32  _Elaina  阅读(11)  评论(0)    收藏  举报