前言
本文属于C#零基础入门之百识百例系列文章。此系列文章旨在为学习C#语言的童鞋提供一套系统的学习路径。此系列文章都会通过【知识点】【练习题】的形式呈现。有任何问题,你都可以通过评论,私信等方式找到我,我会一对一解答你的问题。
系列文章目录:
《C#零基础入门之百识百例》 目录文章传送门
一,基础数值
释义:
方法名 | 说明 |
---|---|
Math.PI | 对应数学中的π(其值为3.141592653589793)。 |
Math.Abs(a) | 返回参数a的绝对值;int,double,decimal多类型重载。 |
Math.Max(a, b) | 返回两个数中大的一个;byte,int,double,decimal多类型重载。 |
Math.Min(a, b) | 返回两个数中小的一个;byte,int,double,decimal多类型重载。 |
示例代码:
Console.WriteLine("Math.PI:" + Math.PI);
Console.WriteLine("Math.Abs:" + Math.Abs(-1));
Console.WriteLine("Math.Abs:" + Math.Abs(1.1));
Console.WriteLine("Math.Max:" + Math.Max(1, 2));
Console.WriteLine("Math.Min:" + Math.Min(1.1, 2.2));
结果输出:
Math.PI:3.141592653589793
Math.Abs:1
Math.Abs:1.1
Math.Max:2
Math.Min:1.1
二,三种取整
释义:
方法名 | 说明 |
---|---|
Math.Round(a) | 返回a四舍六入五取偶最接近的整数 |
Math.Floor(a) | 返回a向下取整后的数 |
Math.Ceiling(a) | 返回a向上取整后的数 |
示例代码:
double pai = 3.1415926;
Console.WriteLine(Math.Round(pai));
Console.WriteLine(Math.Floor(pai));
Console.WriteLine(Math.Ceiling(pai));
输出结果:
Math.Round : 3
Math.Floor : 3
Math.Ceiling : 4
其中Math.Round()
需要注意:其实并不是真正的 四舍五入 ,而是 四舍六入五取偶
Console.WriteLine("Math.Round(3.5) : " + Math.Round(3.5));
Console.WriteLine("Math.Round(4.5) : " + Math.Round(4.5));
Console.WriteLine("Math.Round(5.5) : " + Math.Round(5.5));
结果为:
Math.Round(3.5) : 4
Math.Round(4.5) : 4
Math.Round(5.5) : 6
三,指数对数平方根
释义:
方法名 | 说明 |
---|---|
Math.Pow(a, b) | 返回a的b次幂 |
Math.Exp(a) | 返回e的a次幂 |
Math.Log(a) | 返回以e为底a的对数 |
Math.Log2(a) | 返回以2为底a的对数 |
Math.Log10(a) | 返回以10为底a的对数 |
Math.Sqrt (a) | 返回以a的平方根 |
示例代码:
// 2的2次幂
Console.WriteLine("Math.Pow : " + Math.Pow(2, 2));
// e的2次幂
Console.WriteLine("Math.Exp : " + Math.Exp(2));
// 以e为底2的对数
Console.WriteLine("Math.Log : " + Math.Log(2));
// 以2为底2的对数
Console.WriteLine("Math.Log2 : " + Math.Log2(2));
// 以10为底10的对数
Console.WriteLine("Math.Log10 : " + Math.Log10(10));
// 4的平方根
Console.WriteLine("Math.Sqrt : " + Math.Sqrt(4));
输出结果:
Math.Pow : 4
Math.Exp : 7.38905609893065
Math.Log : 0.6931471805599453
Math.Log2 : 1
Math.Log10 : 1
Math.Sqrt : 2
四,三角函数
C#中的计算三角函数方法弧度值为参数传入的。比如当我们需要求sin45°
时,需要先将角度转为弧度才可进行方法调用。
释义:
方法名 | 说明 |
---|---|
Math.Sin(a) | 返回参数弧度a的正弦值 |
Math.Asin(a) | 返回参数弧度a的反正弦值 |
Math.Cos(a) | 返回参数弧度a的余弦值 |
Math.Acos(a) | 返回参数弧度a的反余弦值 |
Math.Tan(a) | 返回参数弧度a的正切值 |
Math.Atan(a) | 返回参数弧度a的反正切值 |
Math.Atan2(a,b) | 返回参数(a,b)点的从X坐标轴到点的弧度值 |
角度弧度互转公式
- 角度转弧度 :π / 180 × 角度;
- 弧度转角度: 180 / π × 弧度
代码示例:【以45角度为例,进行各项求值】
// 45角度转为弧度
double radian = Math.PI / 180 * 45;
// 同上转换
//double radian = Math.PI /4;
Console.WriteLine("Math.Sin: " + Math.Sin(radian));
Console.WriteLine("Math.Cos: " + Math.Cos(radian));
Console.WriteLine("Math.Tan: " + Math.Tan(radian));
Console.WriteLine("Math.Asin: " + Math.Asin(radian));
Console.WriteLine("Math.Acos: " + Math.Acos(radian));
Console.WriteLine("Math.Atan: " + Math.Atan(radian));
Console.WriteLine("Math.Atan2: " + Math.Atan2(1, 1));
// 将得到弧度转换回角度
Console.WriteLine("Math.Atan2: " + Math.Atan2(1, 1) * (180 / Math.PI));
结果输出:
Math.Sin: 0.7071067811865475
Math.Cos: 0.7071067811865476
Math.Tan: 0.9999999999999999
Math.Asin: 0.9033391107665127
Math.Acos: 0.6674572160283838
Math.Atan: 0.6657737500283538
Math.Atan2: 0.7853981633974483
Math.Atan2: 45
由上面结果可以看出得到的结果似乎不完全对❓ 这是咋回事呢?经过对比发现是代码计算精度过高,且没有进行四舍五入导致的。
进行使用Math.Round(Math.Sin(radian), 8)
对上面代码进行取8位小数且四舍五入后的结果:
Math.Sin: 0.70710678
Math.Cos: 0.70710678
Math.Tan: 1
Math.Asin: 0.90333911
Math.Acos: 0.66745722
Math.Atan: 0.66577375
Math.Atan2: 0.78539816
Math.Atan2: 45