04 数学计算
1 Math
Math类
Java 的 Math 包含了用于执行基本数学运算的属性和方法,如初等指数、对数、平方根和三角函数。
Math中的常量
- Math.PI 记录的圆周率
- Math.E 记录e的常量
Math中的函数
三角函数
- Math.sin 正弦函数 Math.asin 反正弦函数
- Math.cos 余弦函数 Math.acos 反余弦函数
- Math.tan 正切函数 Math.atan 反正切函数 Math.atan2 商的反正切函数
- Math.toDegrees 弧度转化为角度 Math.toRadians 角度转化为弧度
舍入函数
- Math.abs 求绝对值
- Math.ceil 得到不小于某数的最大整数
- Math.floor 得到不大于某数的最大整数
- Math.IEEEremainder 求余
- Math.max 求两数中最大
- Math.min 求两数中最小
- Math.round 同上,返回int型或者long型(上一个函数返回double型)
指数幂计算
- Math.sqrt 求开方
- Math.pow 求某数的任意次方, 抛出ArithmeticException处理溢出异常
- Math.exp 求e的任意次方
- Math.log10 以10为底的对数
- Math.log 自然对数
- Math.rint 求距离某数最近的整数(可能比某数大,也可能比它小)
随机数
- Math.random 返回0,1之间的一个随机数
2 BigDecimal类
概述
| 相关内容 | 具体描述 |
|---|---|
| 包 | java.math 使用时需要导包 |
| 类声明 | public class BigDecimal extends Number implements Comparable |
| 描述 | BigDecimal类提供了算术,缩放操作,舍入,比较,散列和格式转换的操作。提供了更加精准的数据计算方式 |
构造方法
| 构造方法名 | 描述 |
|---|---|
| BigDecimal(double val) | 将double类型的数据封装为BigDecimal对象 |
| BigDecimal(String val) | 将 BigDecimal 的字符串表示形式转换为 BigDecimal |
注意:推荐使用第二种方式,第一种存在精度问题;
常用方法
BigDecimal类中使用最多的还是提供的进行四则运算的方法,如下:
| 方法声明 | 描述 |
|---|---|
| public BigDecimal add(BigDecimal value) | 加法运算 |
| public BigDecimal subtract(BigDecimal value) | 减法运算 |
| public BigDecimal multiply(BigDecimal value) | 乘法运算 |
| public BigDecimal divide(BigDecimal value) | 触发运算 |
注意:对于divide方法来说,如果除不尽的话,就会出现java.lang.ArithmeticException异常。此时可以使用divide方法的另一个重载方法;
BigDecimal divide(BigDecimal divisor, int scale, int roundingMode): divisor:除数对应的BigDecimal对象;scale:精确的位数;roundingMode取舍模式
小结:Java中小数运算有可能会有精度问题,如果要解决这种精度问题,可以使用BigDecimal
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Estom的博客!









