CodeGym /课程 /C# SELF /C#里的数字和字符

C#里的数字和字符

C# SELF
第 6 级 , 课程 1
可用

1. 数字有哪些类型?

编程的时候我们老是跟数字打交道——从用户年龄到银河系里的星星数,或者银行账户里的分。可是不同的需求要用不同的数字类型:有时候只要存整数,有时候要很精确的小数,还有时候只需要“没有负号”的数字。

整数(int 还有别的)

整数就是没有小数部分的数字。
在C#里最常用的是int,不过还有别的选择,区别就是占用空间和能存的范围不一样。

  • int —— 最常用的“主力”整数类型。能存很大(也很小)的数,占内存也不多。
    比如,统计点赞数、年龄、一年有多少天,基本都会用int
  • long —— 要是数字特别大(比如几十亿、几万亿)就用它。
    举个例子:存YouTube历史总播放量。
  • short —— 比较省空间但用得少。适合一堆小数字都一样的场景(比如音频数据、颜色分量)。
  • byte —— 能存的数更小,常见于图形、文件操作,内存节省很重要的时候。

小数(doublefloatdecimal

有时候要处理带小数点的数字。比如气温、学生平均分、商品价格带分。

  • double —— 存小数的“默认”类型。大多数计算都够用(比如:3.1415926535…)。
  • float —— 更轻巧但精度低点,常见于图形编程或大数据量处理,内存节省优先。
  • decimal —— 专门为金融、会计设计,精确到分,避免小数存储带来的“丢失”。比如存账户余额、商品价格、汇率。

特殊数字类型

C#里还有一些特殊数字类型,适合特殊场景:

  • uintulongushort —— “无符号”类型,只能存正数,范围比“有符号”类型大一倍。
  • sbyte —— 很小的有符号类型(能存-128127的数,省空间)。
  • BigInteger —— 要是你要搞超大数字,超出普通类型范围,比如加密、天文计算啥的。

2. 有符号和无符号数字

有符号类型能存正数也能存负数。适合数值可能“有正有负”的场景:比如气温、账户余额、海拔高度。

无符号类型——只能存零和正数。适合绝对不会有负数的场景——比如房间里的人数、文件里的字节数、时间。

举个例子:

  • int(有符号):-10050
  • uint(无符号):0101000

用无符号类型,变量能存的最大值直接翻倍(因为没有“负数那一半”)。只要你确定不会有负数,就可以用它们。

有符号整数类型

类型 大小 取值范围 用例
sbyte
1字节 -128到127 -128, 0, 127
short
2字节 -32 768到32 767 -1000, 0, 32000
int
4字节 -2 147 483 648到2 147 483 647 -1000000, 0, 2000000
long
8字节 -9 223 372 036 854 775 808
到9 223 372 036 854 775 807
-10_000_000_000, 1

无符号整数类型

类型 大小 取值范围 用例
byte
1字节 0到255 0, 128, 255
ushort
2字节 0到65 535 1000, 65000
uint
4字节 0到4 294 967 295 100, 4000000000
ulong
8字节 0到18 446 744 073 709 551 615 1, 18_000_000_000_000

小数类型

类型 大小 举例 说明
float
4字节 3.14f, -0.001f 单精度(7位数字)
double
8字节 3.1415, -1.7E+308 双精度(15-16位数字)
decimal
16字节 0.1m, 12345.6789m 高精度,适合金融

3. 数字的后缀

有时候你得明确告诉编译器你想用哪种类型的数字。这个就靠后缀来搞定:

  • Ll —— 用于long类型(比如10000000000L
  • Uu —— 用于uint类型(比如123U
  • Ff —— 用于float类型(比如3.14f
  • Dd —— 用于double类型(其实一般不用,因为没后缀的小数默认就是double
  • Mm —— 用于decimal类型(比如99.99m——搞钱的时候特别重要!)

不写后缀的话,整数默认是int,小数默认是double。比如42就是int3.14就是double

为什么要这样?比如你给long类型变量赋个大数,不加L就会报错:


long bigNumber = 9000000000L; // 不加L会编译错误

搞钱的时候最好永远用decimalm后缀:


decimal price = 999.99m;

4. 下划线分隔符 _

数字太长容易看花眼。C#里可以在数字里用下划线让它更清楚。


int population = 146_700_000;
long stars = 100_000_000_000L;
用下划线让数字更好读

这完全合法:编译器会无视下划线,你一眼就能看出数字的位数。注意别把下划线放在开头、结尾、小数点后或后缀前。

5. 字符类型 char

有时候你不是要数字,而是单个字符:字母、数字、符号,甚至空格。专门有个类型——char

啥是char
就是能存一个字符的变量:

  • 拉丁字母或汉字('A''字'
  • 数字('5'
  • 特殊符号('#''%''@'
  • 控制字符('\\n'——换行)

注意点:

  • char类型的值要用单引号写:char letter = 'B';
  • 其实char内部存的是字符的数字编码(Unicode),所以char能跟int互转,还能做简单的数学运算:

char a = 'A';
char b = (char)(a + 1); // 'B'
int code = a;           // 65 —— 'A'的编码

还能用特殊字符,比如:char tab = '\\t'; // 制表符

为啥要用char
处理文本时按字符操作(比如检查字符串首字母、找标点、一个个读密码)。

评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION