C#math函数
·
一、Math 类基础介绍
1.是什么
Math 是 C# 系统自带的静态数学工具类,在 System 命名空间下,专门封装数学计算方法,直接调用即可,不用自己写公式。
2.使用格式
Math.方法名(参数);
3.特点
- 全部为静态方法,不需要 new 实例;
- 支持整数、小数、负数运算;
- 部分方法返回值为 double 类型,需要强制转换为 int。
二、常用方法(逐条详解 + 代码 + 运行结果 + 易错点)
1. 绝对值 —— Math.Abs (数值)
- 作用:求一个数的绝对值,负数变正数,正数和 0 不变
- 语法:Math.Abs(数值)
- 代码示例
- 易错点:只能传单个数值,不能传多个
Console.WriteLine(Math.Abs(-8)); // 8
Console.WriteLine(Math.Abs(8)); // 8
Console.WriteLine(Math.Abs(0)); // 0
Console.WriteLine(Math.Abs(-3.14)); // 3.14
2. 最大值 —— Math.Max (值 1, 值 2)
- 作用:返回两个数中较大的那个
- 语法:Math.Max(a,b)
- 代码示例
- 易错点:只能比较 2 个值,多个值需要嵌套使用 Math.Max(Math.Max(a,b),c)
Console.WriteLine(Math.Max(5,9)); // 9
Console.WriteLine(Math.Max(-2,0)); // 0
Console.WriteLine(Math.Max(3.5,2.9));// 3.5
3. 最小值 —— Math.Min (值 1, 值 2)
- 作用:返回两个数中较小的那个
- 语法:Math.Min(a,b)
- 代码示例
Console.WriteLine(Math.Min(5,9)); // 5
Console.WriteLine(Math.Min(-2,0)); // -2
Console.WriteLine(Math.Min(3.5,2.9));// 2.9
4. 幂运算(次方)—— Math.Pow (底数,指数)
- 作用:计算 底数的指数次方,对应数学:

- 语法:Math.Pow(double 底数, double 指数)
- 代码示例
- 重点(对应第 8 题作业)
- 易错点:
① 返回值默认是 double,必须强制转 int:(int)Math.Pow(10,5)
② 指数可以是小数,用于开方运算
// 计算22222:基数2,次数5
int jishu = 2;
int cishu = 5;
int result = jishu * ((int)Math.Pow(10, cishu) - 1) / 9;
// 2*(100000-1)/9 = 22222
5. 开平方 —— Math.Sqrt (数值)
- 作用:求一个非负数的算术平方根
- 语法:Math.Sqrt(非负数)
- 代码示例
- 易错点:不能传负数,会报错
6. 四舍五入 —— Math.Round (数值)
核心规则(必背!C# 默认不是传统四舍五入)
四舍六入五取偶数(银行家舍入法)
语法:
- Math.Round(小数):整数位取整
- Math.Round(小数, 保留位数):保留指定位小数
代码示例(你的代码 + 解析)
Console.WriteLine(Math.Round(3.5));//4 前一位3是奇数,进1
Console.WriteLine(Math.Round(2.5));//2 前一位2是偶数,舍去
Console.WriteLine(Math.Round(1.235,2));//1.24 保留2位小数,第3位5,前一位3奇数进1
Console.WriteLine(Math.Round(1.225m, 2));//1.22 m代表decimal高精度类型,前一位2偶数舍去
易错点:
- double 精度低,1.225 实际存储近似 1.224999,会出现异常
- 高精度金钱计算,必须用 decimal 类型(数字后加 m)
7. 向上取整 —— Math.Ceiling (小数)
- 作用:向数值大的方向取整,只要有小数就进 1
- 语法:Math.Ceiling(小数)
- 代码示例
Console.WriteLine(Math.Ceiling(3.1)); // 4
Console.WriteLine(Math.Ceiling(3.9)); // 4
Console.WriteLine(Math.Ceiling(-2.1));// -2
8. 向下取整 —— Math.Floor (小数)
- 作用:向数值小的方向取整,直接舍弃小数部分
- 语法:Math.Floor(小数)
- 代码示例
Console.WriteLine(Math.Floor(3.1)); // 3
Console.WriteLine(Math.Floor(3.9)); // 3
Console.WriteLine(Math.Floor(-2.1));// -3
9. 圆周率常量 —— Math.PI
- 作用:直接获取圆周率 π 的近似值 3.1415926535...
- 语法:Math.PI(无括号,是常量不是方法)
- 代码示例
Console.WriteLine(Math.PI); // 输出3.141592653589793
// 计算圆面积
double r = 5;
double area = Math.PI * r * r;
10要想使用正常四舍五入
- 参数1 :2.5 指定舍入的数据
- 参数2 舍入的规则,如果MidpointRounding.AwayFromZero 正常的四舍五入
- 如果MidpointRounding.ToEven 取最近的偶数
Console.WriteLine(Math.Round(2.5,MidpointRounding.AwayFromZero));//3
Console.WriteLine(Math.Round(1.225,2,MidpointRounding.AwayFromZero));//1.23
11 Math.Cos()求余弦
Console.WriteLine(Math.Cos(Math.PI/3));
12.取余数(取模)—— Math.IEEERemainder (被除数,除数)
- 作用:计算两个数的余数
- 简单取模直接用 %,复杂小数取模用此方法
Console.WriteLine(Math.IEEERemainder(7,3)); // 1
Math.Round 简要解析(修正 + 精简)
- 作用:对小数进行舍入,不是普通四舍五入,C# 默认是四舍六入五取偶(银行家舍入)
- 小数<0.5:舍去
- 小数>0.5:进 1
- 小数 = 0.5:取最接近的偶数
- 基础语法:
Math.Round(数值):默认四舍六入五取偶取整Math.Round(数值, 保留位数):保留指定位小数
- 示例
Math.Round(3.4) → 3Math.Round(3.5) → 4Math.Round(2.5) → 2(5 取偶)Math.Round(1.235,2) → 1.24
Math.Round 简要解析(修正关键细节)
- 基础作用:对小数进行舍入,日常理解为四舍五入,但 C# 实际是四舍六入五取偶(银行家舍入)。
- 基础语法:
Math.Round(小数),默认取整数,看小数点后第一位。 - 特殊规则(重点)
- 小数<0.5:舍去,如
Math.Round(3.4)=3 - 小数>0.5:进 1,如
Math.Round(3.6)=4 - 小数 = 0.5:取偶数
Math.Round(2.5)=2、Math.Round(3.5)=4
- 小数<0.5:舍去,如
- 扩展用法:
Math.Round(数值, 保留位数),可指定保留几位小数,如Math.Round(1.235,2)=1.24。
简单记:日常近似四舍五入,遇到.5 优先凑偶数。
三、取整三大方法对比(必背)
| 方法 | 作用 | 3.1 | 3.9 | -2.1 |
|---|---|---|---|---|
| Math.Round() | 四舍五入 | 3 | 4 | -2 |
| Math.Ceiling() | 向上取整 | 4 | 4 | -2 |
| Math.Floor() | 向下取整 | 3 | 3 | -3 |
四、作业高频重点总结(直接背)
- Math.Abs():绝对值
- Math.Max()/Min():2 个数最大 / 最小值
- Math.Pow(a,b):a 的 b 次方(作业最常用,算 22222 必用)
- Math.Sqrt():开平方
- Math.Round():四舍五入;Ceiling向上;Floor向下
- Math.PI:圆周率
五、通用易错点
- Math.Pow 返回 double,必须强制转换 int 才能参与整数运算
- 取整类方法只对小数生效,整数取整无意义
- Math.Sqrt 不能传入负数
- Max/Min 只能比较 2 个数值,多个值需要嵌套
更多推荐
所有评论(0)