Number类,抽象类,作用是规定了其子类必须提供数值转换为byte ,float ,short , int ,long ,double五种类型的方法。
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();
}
}
测试结果: