Java StrictMath Class

2025 年 5 月 9 日 | 阅读 9 分钟

java.lang.StrictMath 类提供了许多用于执行数值运算的方法,例如计算平方、平方根、立方、立方根、指数结果以及三角函数。它确保了跨所有平台的严格精度和一致的结果。

处理 NaN 参数

  • StrictMath 类定义了一个常量来表示 double 类型的“非数字”(NaN)值。
  • 此常量等同于调用 Double.longBitsToDouble(0x7ff8000000000000L) 的结果。

StrictMath 类的字段

修饰符和类型字段描述
static doubleE最接近 e(自然对数底数)的 double 值。
static doublePI最接近 pi(圆的周长与直径之比)的 double 值。

StrictMath 类的方

1. acos():它以弧度为单位返回值的反余弦(余弦的倒数)。

方法签名

参数

  • a - 范围为 [-1, 1] 的 double 值。

返回值

  • 范围为 [0.0, π](以弧度为单位)的值。

描述

  • 计算余弦值为指定值的角度 θ。
  • 在三角学中计算角度非常有用。

输出

 
acos(0.5) in radians: 1.0471975511965979
acos(0.5) in degrees: 60.00000000000001   

2. abs():它返回数字的绝对值(非负值)。

语法

参数

  • a - int、long、float 或 double 类型的值。

返回值

  • 指定数字的绝对值。

描述

  • 将负数转换为正数,而正数保持不变。

输出

 
Absolute value of -10 (int): 10
Absolute value of -5.7 (double): 5.7   

3. toRadians():它将角度从度转换为弧度。

语法

参数

  • angdeg - 以度为单位的角度。

返回值

  • 以弧度为单位的角度。

描述

  • 由于许多三角函数(如 sin()、cos() 和 tan())使用弧度作为输入,因此此方法用于转换。

输出

 
180 degrees in radians: 3.141592653589793   

4. cbrt():cbrt() 函数确定给定数字的立方根。

语法

参数

  • a - 要计算其立方根的 double 值。

返回值

  • 参数 a 的立方根。
  • 结果精确,可能包含小数。

描述

  • 此方法计算指定值的立方根。
  • 对正数和负数都有效
    • 对于正数,它返回正立方根。
    • 对于负数,它返回负立方根。

输出

 
Cube root of 27: 3.0
Cube root of -64: -4.0   

5. asin():asin() 方法以弧度为单位计算给定值的反正弦(正弦的倒数)。

语法

参数

  • a - double 值,其中 -1 <= a <= 1。

返回值

  • 表示以弧度为单位的角度的 double 值。
  • 结果范围为 [-π/2, π/2]。

描述

  • 计算正弦值为指定值 a 的角度 θ(以弧度为单位)。
  • 如果输入超出 [-1, 1] 范围,则该方法将引发 **IllegalArgumentException**。
  • 在三角学中,当已知正弦值时,可用于确定角度。

输出

 
asin(0.5) in radians: 0.5235987755982989
asin(0.5) in degrees: 30.0   

6. log():log() 方法计算给定数字的自然对数(以 e 为底)。

语法

参数

  • a - 正 double 值(a > 0)。

返回值

  • 给定数字 a 的自然对数(以 **e** 为底)。

描述

  • 自然对数是以 **e** 为底的对数,其中 **e ≈ 2.718**。
  • 此方法通常用于数学、物理和金融领域,用于计算指数增长或衰减。
  • 如果参数小于或等于 0,则该方法返回 **NaN**(非数字)或引发异常。

文件名:LogExample.java

输出

 
Natural logarithm of 2.718: 0.999896315728952
Natural logarithm of 10: 2.302585092994046   

7. hypot():hypot() 方法使用两条直角边的长度来确定直角三角形的斜边。它等同于计算 sqrt{x^2 + y^2},但可以避免中间溢出或下溢问题。

语法

参数

  • x - 第一条边的长度(double)。
  • y - 第二条边的长度(double)。

返回值

  • 表示斜边 sqrt{x^2 + y^2} 的 double 值。
  • 结果始终为非负值。

描述

  • 该方法可确保斜边的准确计算,而不会出现中间舍入误差。
  • 在几何计算、物理模拟和其他数学计算中很有用。

输出

 
The hypotenuse of a triangle with sides 3 and 4 is: 5.0   

8. floor():floor() 函数将指定数字向下舍入到最接近的较小整数。这意味着它产生小于或等于给定数字的最大整数。

语法

参数

  • a - 要向下舍入的 double 值。

返回值

  • 表示小于或等于 a 的最大整数的 double 值。

描述

  • 该方法截断数字的小数部分,并始终向负无穷方向舍入。
  • 对于正数,它类似于截断。
  • 对于负数,它移到下一个较小的整数。

输出

 
Floor of 5.8: 5.0
Floor of -5.8: -6.0   

9. IEEEremainder():IEEEremainder() 方法根据 IEEE 754 浮点运算标准计算两个数相除的余数。

此方法与模运算符 % 不同,因为它使用“四舍五入到偶数”进行计算。

语法

参数

  • dividend - 除法运算中的被除数(double)。
  • divisor - 除法运算中的除数(double)。

返回值

  • 除法余数,以 double 表示,使用以下公式计算:r=dividend-(divisor×n)
    其中 n 是最接近 dividend/divisor 的整数
  • 如果两个整数距离相等,则选择偶数。

输出

 
IEEE remainder of 7.0 / 2.0: -1.0
IEEE remainder of 10.0 / 3.0: 1.0   

10. ceil():ceil() 方法将指定数字向上舍入到大于或等于该数字的最近整数。

语法

参数

  • a - 要向上舍入的数字(double)。

返回值

  • 表示大于或等于 a 的最小整数的 double 值。

描述

  • 始终将数字**向上**舍入,无论它是正数还是负数。
  • 对于整数,该方法返回相同的值。
  • 适用于需要精确向上舍入的场景。

输出

 
Ceil of 5.3: 6.0
Ceil of -5.8: -5.0   

11. copySign():copySign() 方法返回一个值,该值具有第一个参数的幅值(绝对值)和第二个参数的符号(正或负)。

当需要确保一个值具有所需的符号,而不考虑其原始符号时,此方法很有用。

语法

参数

  • magnitude - 将使用其绝对幅值的(double)。
  • sign - 将应用于幅值的符号(double)。

返回值

  • 具有第一个参数的幅值和第二个参数的符号的 double 值。

描述

  • 该方法提取第一个参数(幅值)的绝对值,并将其与第二个参数(符号)的符号组合。
  • 如果符号为正,则结果为正;如果符号为负,则结果为负。

输出

 
Magnitude: 5.5
Sign: -3.2
Result: -5.5   

12. atan():atan() 函数计算指定数字的反正切(正切的倒数)。结果是一个角度(以弧度为单位),其正切等于给定数字。

这用于从切线值确定角度。

语法

参数

  • a - 要计算其反正切的值(double)。

返回值

  • 一个 double 值,表示指定值的反正切,以弧度为单位。
  • 结果范围为:-π/2 ≤ 结果 ≤ π/2

输出

 
Arc tangent of 1.0: 0.7853981633974483
Arc tangent of -1.0: -0.7853981633974483
Arc tangent of 1.0 in degrees: 45.0   

下一个主题Java 初始化数组