C# Math类的用法(附带实例)
C# Math类的数学常数
Math 类的数学常数有下列两个:- Math.E:这是自然对数的底 e,代表值是 2.718281828459045。
- Math.PI:圆周率,代表值是 3.141592653589793。
【实例】输出 Math.E 和 Math.PI。
Console.WriteLine($"Math.E = {Math.E}"); Console.WriteLine($"Math.PI = {Math.PI}");执行结果为:
Math.E = 2.718281828459045
Math.PI = 3.141592653589793
C# Math类的三角函数
在三角函数的应用中,所有的参数都是以弧度为单位,C# 语言的 Math 类包含下表各种常见的三角函数。函数 | 功能 |
---|---|
Math.sin(double x) | 正弦函数 |
Math.cos(double x) | 余弦函数 |
Math.tan(double x) | 正切函数 |
Math.asin(double x) | 反正弦函数 |
Math.acos(double x) | 反余弦函数 |
Math.atan(double x) | 反正切函数 |
Math.sinh(double x) | 双曲线正弦函数 |
Math.cosh(double x) | 双曲线余弦函数 |
Math.tanh(double x) | 双曲线正切函数 |
上述各三角函数中,x 需要声明为双倍精度浮点数 double,其意义是弧度,假设 x 是角度,可以使用下列公式将角度转成弧度,再引入函数中。
弧度 = x * 2 * pi / 360
【实例】计算 30° 角的 sin()、cos() 和 tan() 的值。pi 圆周率,可以使用 Math.PI 代替。
double x = 30; double radian = x * 2 * Math.PI / 360; Console.WriteLine($"sin(x) = {Math.Sin(radian):F2}"); Console.WriteLine($"cos(x) = {Math.Cos(radian):F2}"); Console.WriteLine($"Tan(x) = {Math.Tan(radian):F2}");执行结果为:
sin(x) = 0.50
cos(x) = 0.87
Tan(x) = 0.58
Math类常用的方法
下列是常见的数学方法:函数 | 功能 |
---|---|
Math.Abs(x) | 计算 x 的绝对值,x 数据类型可以是整数或浮点数,如 Math.Abs(-5)=5。 |
Math.Ceiling(double x) | 回传大于 x 的最小整数,如 Math.Ceiling(3.5)=4。 |
Math.Floor(double x) | 回传小于 x 的最大整数,如 Math.Floor(3.9)=3。 |
Math.Truncate(double x) | 删除小数位数。如 Math.Truncate(3.5)=3。 |
Math.Sqrt(double x) | 开根号,如 Math.Sqrt(4)=2.0。 |
Math.Max(x1, x2) | 回传相同类型数据的较大值,如Math.Max(5, 10)=10。 |
Math.Min(x1, x2) | 回传相同类型数据的较小值,如Math.Min(5, 10)=5。 |
Math.Pow(double x, double y) | 回传 x 的 y 次方,如 Math.Pow(2.0, 3.0)=8.0。 |
Math.Log(double x) | 回传自然对数或底数为 e 的对数,如 Math.Log(Math.E)=1.0。 |
Math.Log2(double x) | 回传底数为 2 的对数,如 Math.Log(8.0)=3.0。 |
Math.Log10(double x) | 回传底数为 10 的对数,如 Math.Log(100.0)=2.0。 |
Math.Round(double x) 或 Math.Round(double x, int y) |
如果处理位数左边是奇数则四舍五入,如果处理位数左边是偶数则五舍六入,例如 Round(1.5)=2,Round(2.5)=2。 处理小数时,第2个参数代表取到小数第几位,小数字数的下一个小数采用“5”及以下舍去,“5”及以上进制,例如,Round(2.15,1)=2.1,Round(2.25,1)=2.2,Round(2.151,1)=2.2,Round(2.251,1)=2.3。 |
【实例】基础数学方法实例。
Console.WriteLine($"Math.Abs(-5) = {Math.Abs(-5)}"); Console.WriteLine($"Math.Ceiling(3.5) = {Math.Ceiling(3.5)}"); Console.WriteLine($"Math.Floor(3.9) = {Math.Floor(3.9)}"); Console.WriteLine($"Math.Truncate(3.5) = {Math.Truncate(3.5)}"); Console.WriteLine($"Math.Sqrt(4) = {Math.Sqrt(4)}"); Console.WriteLine($"Math.Max(5, 10) = {Math.Max(5, 10)}"); Console.WriteLine($"Math.Min(5, 10) = {Math.Min(5, 10)}"); Console.WriteLine($"Math.Pow(2.0, 3.0) = {Math.Pow(2.0, 3.0)}"); Console.WriteLine($"Math.Log(Math.E) = {Math.Log(Math.E)}"); Console.WriteLine($"Math.Log2(8.0) = {Math.Log2(8.0)}"); Console.WriteLine($"Math.Log10(100.0) = {Math.Log10(100.0)}"); Console.WriteLine($"Math.Round(47.5) = {Math.Round(47.5)}"); Console.WriteLine($"Math.Round(48.5) = {Math.Round(48.5)}"); Console.WriteLine($"Math.Round(2.15,1) = {Math.Round(2.15,1)}"); Console.WriteLine($"Math.Round(2.25,1) = {Math.Round(2.25,1)}"); Console.WriteLine($"Math.Round(2.151,1) = {Math.Round(2.151,1)}"); Console.WriteLine($"Math.Round(2.251,1) = {Math.Round(2.251,1)}");执行结果为:
Math.Abs(-5) = 5
Math.Ceiling(3.5) = 4
Math.Floor(3.9) = 3
Math.Truncate(3.5) = 3
Math.Sqrt(4) = 2
Math.Max(5, 10) = 10
Math.Min(5, 10) = 5
Math.Pow(2.0, 3.0) = 8
Math.Log(Math.E) = 1
Math.Log2(8.0) = 3
Math.Log10(100.0) = 2
Math.Round(47.5) = 48
Math.Round(48.5) = 48
Math.Round(2.15,1) = 2.2
Math.Round(2.25,1) = 2.2
Math.Round(2.151,1) = 2.2
Math.Round(2.251,1) = 2.3