C#学习 数字操作 (4)

加减乘除

int a=10;
int b=20;
Console.WriteLine($"a+b={a+b}");
Console.WriteLine($"a-b={a-b}");   
Console.WriteLine($"a*b={a*b}");   
Console.WriteLine($"b/a={b/a}"); 

a+b=30
a-b=-10
a*b=200
b/a=2

整数相除后自动去除小数

d = a / b;
Console.WriteLine($"d=a/b:{a / b}");

d=a/b:0

余数

a = 3;
b = 7;
d = b % a;
Console.WriteLine($"d=b%a:{d}");

d=b%a:1

INT类型的最大值和最小值

Console.WriteLine($"INT类型的最大值:{int.MaxValue}");
Console.WriteLine($"INT类型的最小值:{int.MinValue}");

INT类型的最大值:2147483647
INT类型的最小值:-2147483648

INT运算超过限值 (无法编译)

d = int.MaxValue + 1;
Console.WriteLine($"运算超过限值(int.MaxValue+1):{int.MaxValue + 1}");

在 checked 模式下,运算在编译时溢出

双精度

double d1 = 10.1;
double d2 = 20.2;
double d3 = 40.4;
Console.WriteLine($"d1+d2={d1 + d2}");
Console.WriteLine($"d1-d2={d1 - d2}");
Console.WriteLine($"d1*d2={d1 * d2}");
Console.WriteLine($"d2/d1={d2 / d1}");
Console.WriteLine($"d1+(d2/d3)={d1 + (d2 / d3)}");
Console.WriteLine($"double类型的值的范围:{double.MaxValue}~{double.MinValue}");

d1+d2=30.299999999999997
d1-d2=-10.1
d1*d2=204.01999999999998
d2/d1=2
d1+(d2/d3)=10.6
double类型的值的范围:1.7976931348623157E+308~-1.7976931348623157E+308

双精度运算超过限值 (无法编译)

d3 = double.MaxValue + 1;
Console.WriteLine($"运算超过限值(double.MaxValue+1):{double.MaxValue + 1}");

在 checked 模式下,运算在编译时溢出

decimal 类型的范围较小,但精度高于 double

Console.WriteLine($"decimal类型的值的范围:{decimal.MaxValue}~{decimal.MinValue}");
// 精度对比
double d5 = 1.0;
double d6 = 3.0;
Console.WriteLine($"double相除结果(d5 / d6): {d5 / d6}");
decimal de1 = 1.0M; // 用M来区分decimal
decimal de2 = 3.0M;
Console.WriteLine($"decimal相除结果(de1 / de2): {de1 / de2}");
// 计算圆面积
double r =  2.50;
double s = Math.PI * r * r;
Console.WriteLine($"圆面积(πr²): {s}");

decimal类型的值的范围:79228162514264337593543950335~-79228162514264337593543950335
double相除结果(d5 / d6): 0.3333333333333333
decimal相除结果(de1 / de2): 0.3333333333333333333333333333
圆面积(πr2): 19.634954084936208

posted @ 2024-10-27 12:34  huiy_小溪  阅读(8)  评论(0编辑  收藏  举报