基础系列【十】--Math

基础系列【十】--Math

数学类

1.  Math类--最终类提供了基本的计算方法。针对的是基本类型。提供了一系列的静态方法来辅助进行数学运算。
2.  BigDecima--一个用于精确运算的类,传入的参数许是字符串形式。
3.  为什么小数一般情况下不能精确运算。因为小数部分在转化为二进制的时候为*2,这种情况一般情况下会出现无线循环。

代码分析

 // strictfp 修饰方法,强制这个方法在执行过程中以80位二进制来进行运算,但是最后赋值给double类型依然是64位
    public strictfp static void main(String[] args) {

    // 在运算的时候精确度会有损失
    // 绝大部分小数转化为二进制都是无限小数
    // 在Java中小数默认为double类型,double类型用了64位二进制来存储一个数字
    // 小数在存储的时候会舍弃一部分位数---这就意味着小数本身存储就不精确
    // double d = 3.0 - 2.79;
    // System.out.println(d);

    // 如果需要精确运算,需要以字符串形式传入
    // 字符串底层是以对应相减完成
    BigDecimal bd1 = new BigDecimal("3.0");
    BigDecimal bd2 = new BigDecimal("2.79");
    System.out.println(bd1.subtract(bd2));

}

System.out.println(Math.PI);//3.141592653589793
    //立方根
    System.out.println(Math.cbrt(27));//3.0
    //向上取整
    System.out.println(Math.ceil(3.14));//4.0
    //向下取整
    System.out.println(Math.floor(3.99));//3.0
    //四舍五入
    System.out.println(Math.round(3.4));//3
    System.out.println(Math.round(3.5));//4
    //求幂次方:3的5
    System.out.println(Math.pow(3, 5));//243.0
    //返回一个<=0<1的随机小数
    System.out.println(Math.random());//0.28378684484758154
    //返回一个30到70之间的随机整数
    System.out.println((int)(Math.random()*40+30));
    System.out.println(3.4-2.76);//0.6400000000000001
    BigDecimal bgc =  new BigDecimal("3.4");
    BigDecimal bgc1 = new BigDecimal("2.76");
    System.out.println(bgc.subtract(bgc1));//精确运算0.64 

下一篇:
基础系列【十一】–File和RandomAccessFile

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值