Java常用类系列(四)——数学类(Math、BigDecimal)

一、Math 类

  1. 概述:

    java.lang.Math 提供了一系列静态方法用于科学计算;其方法的参数和返回值类型一般为 double 型。

  2. 常用方法及示例:

    (1) 数学算术:

    * Math.abs(): 求绝对值
    * Math.acos(), Math.asin(), Math.atan(), Math.cos(), Math.sin(), Math.tan():  三角函数
    * Math.sqrt(): 求平方根
    * Math.pow(double a,doble b): 求a的b次幂
    * Math.log():求自然对数
    * Math.exp():求e为底指数
    * Math.toDegrees(double angrad): 弧度—>角度
    * Math.toRadians(double angdeg): 角度—>弧度
    * Math.pow(int arg1,int arg2) : 求第一个参数的第二个参数次幂。
    

    (2) 特殊数:

    * Math.E  :底数,是所有自然数的底数。
    * Math.PI :π ,圆周率 。
    

    (3)数学处理:

    * Math.ceil() : 向上取整。 返回 doouble 类型的值。
    * Math.floor() : 向下取整。 返回 doouble 类型的值。
    * Math.max(double a,double b):求两个数的最大值。
    * Math.min(double a,double b):求两个数的最小值。
    * Math.random(): 返回0.0到1.0的随机数,不包含1。
    * long Math.round(double a):double型数据a转换为long型(四舍五入)。
    

二、BigDecimal 类

  1. 概述:

    一般的 Float 类和 Double 类可以用来做科学计算或工程计算,但在商业计算中,要求数字精度比较高,故用到 java.math.BigDecimal 类。BigDecimal 类支持任何精度的定点数。

  2. 常用方法及示例

    * public BigDecimal add(BigDecimal augend) :精确加法
    * public BigDecimal subtract(BigDecimal subtrahend):精确减法 
    * public BigDecimal multiply(BigDecimal multiplicand):精确乘法
    * public BigDecimal divide(BigDecimal divisor, int scale, int roundingMode) :精确除法。scale 表示保留的位数;在roundingMode中,ROUND_HALF_UP:表示向“最接近的”数字舍入;如果与两个相邻数字的距离相等,则向上舍入;ROUND_HALF_DOWN:表示舍弃部分> 0.5进1; ROUND_HALF_EVEN:表示银行家舍入法 ,向“最接近的”数字舍入,如果与两个相邻数字的距离相等,则向相邻的偶数舍入。
    
    //加法
    BigDecimal b1 = BigDecimal.valueOf(value1);  
    BigDecimal b2 = BigDecimal.valueOf(value2);  
    b1.add(b2).doubleValue();
    //减法
    BigDecimal b1 = BigDecimal.valueOf(value1);  
    BigDecimal b2 = BigDecimal.valueOf(value2);  
    b1.subtract(b2).doubleValue();
    //乘法
    BigDecimal b1 = BigDecimal.valueOf(value1);  
    BigDecimal b2 = BigDecimal.valueOf(value2);  
    b1.multiply(b2).doubleValue();   
    //除法  
    BigInteger bi = new BigInteger("12433241123");
    BigDecimal bd = new BigDecimal("12435.351");
    BigDecimal bd2 = new BigDecimal("11");
    System.out.println(bd.divide(bd2,BigDecimal.ROUND_HALF_UP));  //>=0.5进1
    System.out.println(bd.divide(bd2,15,BigDecimal.ROUND_HALF_DOWN)); //>0.5进1
    System.out.println(bd.divide(bd2,15,BigDecimal.ROUND_HALF_EVEN));
    

三、Java常用类系列(三): Java常用类系列(三)——文件类(File)

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吟诗作对歌一曲

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值