当前位置: 首页 > article >正文

Math 类的核心 API

1. 基本数学运算

(1) 绝对值
  • static int abs(int a):返回 int 类型参数的绝对值。

  • static long abs(long a):返回 long 类型参数的绝对值。

  • static float abs(float a):返回 float 类型参数的绝对值。

  • static double abs(double a):返回 double 类型参数的绝对值。

    int absValue = Math.abs(-10); // 10
(2) 最大值和最小值
  • static int max(int a, int b):返回两个 int 类型参数中的最大值。

  • static long max(long a, long b):返回两个 long 类型参数中的最大值。

  • static float max(float a, float b):返回两个 float 类型参数中的最大值。

  • static double max(double a, double b):返回两个 double 类型参数中的最大值。

    int maxValue = Math.max(10, 20); // 20
  • static int min(int a, int b):返回两个 int 类型参数中的最小值。

  • static long min(long a, long b):返回两个 long 类型参数中的最小值。

  • static float min(float a, float b):返回两个 float 类型参数中的最小值。

  • static double min(double a, double b):返回两个 double 类型参数中的最小值。

    int minValue = Math.min(10, 20); // 10
(3) 四舍五入
  • static long round(double a):返回 double 类型参数四舍五入后的 long 值。

  • static int round(float a):返回 float 类型参数四舍五入后的 int 值。

    long rounded = Math.round(10.6); // 11
(4) 取整
  • static double ceil(double a):返回大于或等于参数的最小整数(向上取整)。

    double ceilValue = Math.ceil(10.1); // 11.0
  • static double floor(double a):返回小于或等于参数的最大整数(向下取整)。

    double floorValue = Math.floor(10.9); // 10.0
(5) 随机数
  • static double random():返回一个 [0.0, 1.0) 范围内的随机数。

    double randomValue = Math.random(); // 0.0 <= value < 1.0

2. 指数和对数运算

(1) 幂运算
  • static double pow(double a, double b):返回 a 的 b 次方。

    double power = Math.pow(2, 3); // 8.0
(2) 平方根
  • static double sqrt(double a):返回参数的平方根。

    double sqrtValue = Math.sqrt(16); // 4.0
(3) 立方根
  • static double cbrt(double a):返回参数的立方根。

    double cbrtValue = Math.cbrt(27); // 3.0
(4) 自然对数
  • static double log(double a):返回参数的自然对数(以 e 为底)。

    double logValue = Math.log(Math.E); // 1.0
(5) 以 10 为底的对数
  • static double log10(double a):返回参数的以 10 为底的对数。

    double log10Value = Math.log10(100); // 2.0
(6) 指数函数
  • static double exp(double a):返回 e 的 a 次方。

    double expValue = Math.exp(1); // 2.71828...

3. 三角函数

(1) 正弦函数
  • static double sin(double a):返回参数的正弦值(参数为弧度)。

    double sinValue = Math.sin(Math.PI / 2); // 1.0
(2) 余弦函数
  • static double cos(double a):返回参数的余弦值(参数为弧度)。

    double cosValue = Math.cos(Math.PI); // -1.0
(3) 正切函数
  • static double tan(double a):返回参数的正切值(参数为弧度)。

    double tanValue = Math.tan(Math.PI / 4); // 1.0
(4) 反三角函数
  • static double asin(double a):返回参数的反正弦值(结果为弧度)。

  • static double acos(double a):返回参数的反余弦值(结果为弧度)。

  • static double atan(double a):返回参数的反正切值(结果为弧度)。

  • static double atan2(double y, double x):返回从直角坐标 (x, y) 到极坐标的角度(结果为弧度)。

    double atan2Value = Math.atan2(1, 1); // π/4

4. 双曲函数

(1) 双曲正弦
  • static double sinh(double x):返回参数的双曲正弦值。

    double sinhValue = Math.sinh(1); // 1.1752...
(2) 双曲余弦
  • static double cosh(double x):返回参数的双曲余弦值。

    double coshValue = Math.cosh(1); // 1.54308...
(3) 双曲正切
  • static double tanh(double x):返回参数的双曲正切值。

    double tanhValue = Math.tanh(1); // 0.76159...

5. 角度和弧度转换

  • static double toRadians(double angdeg):将角度转换为弧度。

    double radians = Math.toRadians(180); // π
  • static double toDegrees(double angrad):将弧度转换为角度。

    double degrees = Math.toDegrees(Math.PI); // 180.0

6. 其他方法

(1) 符号函数
  • static double signum(double d):返回参数的符号函数值(-1、0 或 1)。

    double sign = Math.signum(-10.5); // -1.0
(2) 差值
  • static double hypot(double x, double y):返回 sqrt(x² + y²)

    double hypotValue = Math.hypot(3, 4); // 5.0
(3) 乘加运算
  • static double fma(double a, double b, double c):返回 a * b + c(Java 9 引入)。

    double fmaValue = Math.fma(2, 3, 4); // 10.0

总结

Math 类提供了丰富的数学运算方法,涵盖了基本运算、指数对数、三角函数、双曲函数、角度弧度转换等。以下是常用方法的分类:

类别方法说明
基本运算abs()max()min()绝对值、最大值、最小值
取整ceil()floor()round()向上取整、向下取整、四舍五入
随机数random()生成随机数
指数对数pow()sqrt()log()幂运算、平方根、对数
三角函数sin()cos()tan()正弦、余弦、正切
角度弧度转换toRadians()toDegrees()角度与弧度转换
其他signum()hypot()符号函数、平方和的平方根

http://www.kler.cn/a/580165.html

相关文章:

  • BERT(Bidirectional Encoder Representations from Transformers)的序列分类模型,简单学习记录
  • 【算法】图论 —— SPFA 算法 python
  • 集合知识点
  • 《探索微观世界的钥匙:量子》
  • Manus:成为AI Agent领域的标杆
  • 大语言模型-01-语言模型发展历程-02-从神经网络到ELMo
  • go 标准库包学习笔记
  • 【数据集】社区天气资讯网络CoWIN-香港小时尺度气象数据(含MATLAB处理代码)
  • 【编程题】7-5 堆中的路径
  • 前端HTML转word文档,绝对有效!!!
  • SpreadVue实现内置excel在线编辑并保存为后端可以接受的json格式
  • 案例分析:安防5G低代码开发网关如何提升城市监控效率
  • 算法与数据结构(两数相加)
  • Android操作CAN总线(基于linux-canutils库,发送、接收、设置过滤器)
  • 【2025】基于PHP+Vue的电影购票系统(源码+文档+调试+图文修改+答疑)
  • 基于muduo+mysql+jsoncpp的简易HTTPWebServer
  • 【医院内部控制专题】7.医院内部控制环境要素剖析(三):人力资源政策
  • 发起请求的步骤
  • JVM 类加载原理之双亲委派机制(JDK8版本)
  • ThreadLocal源码剖析