对于C#,笔者没有系统地学习过,而是在工作中边学边用,这样虽然学得挺快,但终究有些细节的基本很少涉及到,所以我决心在工作之余补补基础,然后把自己觉得需要做笔记的东西写到博客里。今天笔者要记录的是几个基本类型,byte、sbyte、float、decimal。
byte:占用1个字节,取值范围0~255,无符号。
一般认为不加u的就是有符号的,可是这个byte却是无符号的,所以要请注意,与之对应的的有符号字节类型则是sbyte。
sbyte:占用1个字节,取值范围-128~127,有符号。
float:占用4个字节,有效数字7位。
其实笔者要注意到的是有效数字7位,指的是所有数字的个数,不包括小数点。例如:
float num1 = 123.456f; // 6位
float num2 = 123.4567f; // 7位
float num3 = 123.456729f; // 9位
float num4 = 123.456789f; // 9位
Console.WriteLine(num1);
Console.WriteLine(num2);
Console.WriteLine(num3);
Console.WriteLine(num4);
输出结果:
可以看出,当数字超过7位时会进行四舍五入。
decimal:占用16字节,有效数字28位,用于金融货币等对精度要求比较高的数,但是取值范围还没float的大。由于实数常量默认是double类型,所以给decimal变量赋值时,要在加上后缀m或者M。