欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

#研究JAVAAPI系列--Number类+BigDecimal类#

程序员文章站 2024-03-14 19:58:11
...

Number类,抽象类,作用是规定了其子类必须提供数值转换为byte ,float ,short , int ,long ,double五种类型的方法。

#研究JAVAAPI系列--Number类+BigDecimal类#

BigDecimal类,一个用于处理超过16位有效数字的类,在商业上比较常用,不同于传统的+-*/,bigdecimal专有方法如下:

package MathAPI;

import java.math.BigDecimal;
import java.math.MathContext;

public class BigDecimalAPI {
    
    //测试:绝对值和转换int
    public void test1(){
        int a = -1;
        System.out.println("原本的A:"+a);
        int b = new BigDecimal(a).abs().intValue();
        System.out.println("绝对值的A:"+b);
    }
    //测试:add方法
    public void test2(){
        int val1 = 100;
        BigDecimal bd1 = new BigDecimal(val1);
        System.out.println("val1的值:"+val1);
        int val2 = 50;
        BigDecimal bd2 = new BigDecimal(val2);
        System.out.println("val2的值:"+val2);

        BigDecimal sum = bd1.add(bd2);
        System.out.println("add后的和为:"+sum);
    }
    //测试:舍入模式+负值+幂值+余值+精度数
    public void test3(){
        BigDecimal bd = new BigDecimal(3.1,MathContext.DECIMAL32);
        System.out.println("原来的值:"+bd);
        System.out.println("-----------------");
        System.out.println("负数的值:"+bd.negate());
        System.out.println("2次幂值:"+bd.pow(2));
        System.out.println("返回余数的值"+bd.remainder(new BigDecimal(2)));
        System.out.println("移动小数点:"+bd.movePointRight(3));
        System.out.println("保留小数点后3位:"+bd.setScale(3));
        System.out.println("返回当前值得符号:"+bd.signum());
        System.out.println("移除尾部所有零:"+bd.stripTrailingZeros());
        System.out.println("返回值的精度:"+bd.precision());
        
    }
    //去指数的方法就省略了感觉很少用,要用再查,toPlainString() 
    
    public static void main(String[] args) {
        BigDecimalAPI bda = new BigDecimalAPI();
        System.out.println("******测试1:*******");
        bda.test1();
        System.out.println("******测试2:*******");
        bda.test2();
        System.out.println("******测试3:*******");
        bda.test3();
    }
}

测试结果:

#研究JAVAAPI系列--Number类+BigDecimal类#