C#之 Math 类提供的常用数学函数

以下是C#中 Math 类提供的常用数学函数和常量的全面总结,分类整理并附示例说明:


一、基础数学函数

  1. 绝对值

    • Math.Abs(double value)
      说明:返回数值的绝对值。
      重载:支持 int, double, float, decimal 等类型。
      示例
      Math.Abs(-5.5)   // 5.5
      
  2. 最大值与最小值

    • Math.Max(val1, val2)Math.Min(val1, val2)
      说明:返回两个值中较大或较小的一个。
      重载:支持所有数值类型。
      示例
      Math.Max(3, 9)  // 9
      Math.Min(-2, 5) // -2
      

二、三角函数(角度单位为弧度)

  1. 基本三角函数

    • Math.Sin(radians)
    • Math.Cos(radians)
    • Math.Tan(radians)
      示例
      Math.Sin(Math.PI / 6)   // ≈0.5 (30度对应正弦值)
      
  2. 反三角函数

    • Math.Asin(x) → 返回范围:[-π/2, π/2]
    • Math.Acos(x) → 返回范围:[0, π]
    • Math.Atan(x) → 返回范围:[-π/2, π/2]
      注意:输入值范围需为 [-1, 1](AsinAcos)。
      示例
      Math.Atan(1)   // π/4
      
  3. Atan2(y, x)

    • Math.Atan2(y, x)
      说明:计算点 (x,y) 的角度(考虑象限)。
      示例
      Math.Atan2(1, 1)   // π/4
      Math.Atan2(-1, -1) // -3π/4
      
  4. 双曲函数

    • Math.Sinh(radians)
    • Math.Cosh(radians)
    • Math.Tanh(radians)
      示例
      Math.Tanh(0) // 0
      

三、指数与对数函数

  1. 指数函数

    • Math.Exp(x)
      说明:返回 e 的指定幂次。
      示例
      Math.Exp(1)   // ≈2.718 (e的值)
      
  2. 幂函数

    • Math.Pow(x, y)
      说明:计算 x 的 y 次方。
      示例
      Math.Pow(2, 3)   // 8
      
  3. 平方根

    • Math.Sqrt(x)
      示例
      Math.Sqrt(16)   // 4
      
  4. 对数函数

    • Math.Log(x) → 自然对数(底为 e)
    • Math.Log(x, base) → 指定底的对数
    • Math.Log10(x) → 底为 10 的对数
      示例
      Math.Log(Math.E)    // 1
      Math.Log10(100)     // 2
      Math.Log(8, 2)      // 3
      

四、舍入与截断

  1. 四舍五入

    • Math.Round(x)
      重载:支持小数位数和舍入模式(例如 MidpointRounding)。
      示例
      Math.Round(2.5)                 // 2(默认四舍六入五取偶)
      Math.Round(2.5, MidpointRounding.AwayFromZero) // 3
      
  2. 向上取整

    • Math.Ceiling(x)
      示例
      Math.Ceiling(2.3)   // 3
      
  3. 向下取整

    • Math.Floor(x)
      示例
      Math.Floor(2.7)   // 2
      
  4. 截断小数部分

    • Math.Truncate(x)
      示例
      Math.Truncate(-3.7)  // -3(直接截断)
      

五、符号与数值处理

  1. 符号函数

    • Math.Sign(x)
      返回值:1(正数)、-1(负数)、0。
      示例
      Math.Sign(-5)   // -1
      
  2. 数值范围限制

    • Math.Clamp(value, min, max)
      说明:将 value 限制在 minmax 之间。
      示例
      Math.Clamp(15, 0, 10)  // 10
      
  3. 浮点数微调

    • Math.BitIncrement(x)Math.BitDecrement(x)
      说明:返回大于或小于 x 的最小浮点数(基于二进制位操作)。
      示例
      Math.BitIncrement(1.0)  // 1.0000000000000002(double)
      

六、其他实用方法

  1. 积商余数计算

    • Math.DivRem(a, b, out remainder)
      说明:返回商并将余数存入 remainder
      示例
      int rem;
      Math.DivRem(10, 3, out rem)  // 商=3, rem=1
      
  2. 融合乘加运算

    • Math.FusedMultiplyAdd(a, b, c)
      说明:高效计算 a*b + c(单次舍入误差)。
  3. IEEE余数

    • Math.IEEERemainder(a, b)
      示例
      Math.IEEERemainder(10, 3)  // ≈-1
      

七、常量

  • Math.E → 自然对数的底 e(≈2.71828)。
  • Math.PI → π(≈3.14159)。

八、注意事项

  1. 数值类型重载:大多数方法支持 doublefloat,部分支持 intdecimal
  2. 异常处理:如负数传给 SqrtLog 会导致 NaN,超出范围的参数会抛出异常。
  3. 浮点精度问题:浮点运算可能存在舍入误差(例如 0.1 + 0.2 = 0.30000000000000004)。
  4. 高版本函数:如 ScaleB, ReciprocalEstimate 在 .NET 5+ 中引入。

以上列举涵盖了C# Math类的核心功能,适用于数值运算、几何计算等场景。使用时需根据需求选择合适方法和类型。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

观视界

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

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

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

打赏作者

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

抵扣说明:

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

余额充值