在C#编程中,基本算术运算是处理数值计算的核心基础,涵盖加法、减法、乘法、除法、取模等常见操作,这些运算通过内置的算术运算符即可快速实现,同时需要注意不同数据类型的运算规则,避免出现计算精度或结果异常的问题。

C#支持的基本算术运算符
C#提供了完整的算术运算符集合,覆盖所有基础运算场景,具体运算符及功能如下:
- +:加法运算符,用于计算两个数值的和
- -:减法运算符,用于计算两个数值的差
- *:乘法运算符,用于计算两个数值的积
- /:除法运算符,用于计算两个数值的商
- %:取模运算符,用于计算两个数值相除后的余数
- ++:自增运算符,用于将操作数的值加1
- --:自减运算符,用于将操作数的值减1
不同数据类型的运算注意事项
在进行算术运算时,操作数的数据类型会影响最终结果的类型和精度:
- 整数类型(如int、long)相除时,结果会自动截断小数部分,只保留整数商
- 浮点类型(如float、double)相除时,会保留小数部分,得到精确的浮点结果
- 如果运算中包含不同数据类型的操作数,C#会自动进行隐式类型转换,向精度更高的类型靠拢
完整控制台程序示例
下面是一个完整的C#控制台程序,演示所有基本算术运算的实现过程:
using System;
namespace ArithmeticDemo
{
class Program
{
static void Main(string[] args)
{
// 定义两个操作数,分别为整数和浮点类型
int num1 = 10;
double num2 = 3.0;
// 加法操作
double addResult = num1 + num2;
Console.WriteLine($"加法结果:{num1} + {num2} = {addResult}");
// 减法操作
double subResult = num1 - num2;
Console.WriteLine($"减法结果:{num1} - {num2} = {subResult}");
// 乘法操作
double mulResult = num1 * num2;
Console.WriteLine($"乘法结果:{num1} * {num2} = {mulResult}");
// 除法操作,这里num2是浮点类型,结果保留小数
double divResult = num1 / num2;
Console.WriteLine($"除法结果:{num1} / {num2} = {divResult}");
// 整数相除的情况,结果截断小数
int intDivResult = num1 / 3;
Console.WriteLine($"整数除法结果:{num1} / 3 = {intDivResult}");
// 取模操作
int modResult = num1 % 3;
Console.WriteLine($"取模结果:{num1} % 3 = {modResult}");
// 自增和自减操作
int count = 5;
Console.WriteLine($"初始count值:{count}");
Console.WriteLine($"自增后count值:{++count}");
Console.WriteLine($"自减后count值:{--count}");
Console.ReadLine();
}
}
}
运算结果说明
上述程序运行后会输出以下结果:
| 运算类型 | 运算表达式 | 输出结果 |
|---|---|---|
| 加法 | 10 + 3.0 | 13.0 |
| 减法 | 10 - 3.0 | 7.0 |
| 乘法 | 10 * 3.0 | 30.0 |
| 浮点除法 | 10 / 3.0 | 3.3333333333333335 |
| 整数除法 | 10 / 3 | 3 |
| 取模 | 10 % 3 | 1 |
| 自增 | ++count(初始5) | 6 |
| 自减 | --count(初始6) | 5 |
常见问题解答
为什么整数相除没有小数?
因为C#中整数类型的除法运算默认只保留整数部分,若需要得到小数结果,需要将其中一个操作数转换为浮点类型,比如将10 / 3写成10.0 / 3或者(double)10 / 3。
取模运算支持浮点类型吗?
支持,C#的%运算符可以用于浮点类型的取模运算,计算的是两个浮点数相除后的余数,规则与整数取模一致。
注意:在进行算术运算时,如果可能出现数值溢出的情况,建议使用checked关键字包裹运算代码,这样溢出时会抛出OverflowException异常,便于排查问题。