C# 数据类型及转换
一、数据类型
1)值类型
1.整形常用:int 范围±21亿
//int a = 9999;
//a = 1000;
//long b = 99999999999999;
2.小数类型(浮点型)
双精度浮点小数double
//double c = 1.22;
单精度浮点小数 float
//float d = 1.2f;
//decimal e = 1.22M;
3.布尔类型bool,只能存储true或false
//bool f = false;
//bool g = true;
2) 引用类型
1.string类型,字符串类型
//string s = "";
//string s1 = "123";
3)变量的命名规则
1,变量名是由:字母,数字,下划线,@,汉字组成
2,首个字符可以放:@,字母,下划线,汉字
3,变量名中间不允许出现空格
4,不允许使用关键字
4)一次性定义多个变量 使用逗号隔开
//int aa=1, bb=2, cc=3;
5)常量 const
//const int ww = 10;
//ww = 11;
大类 | 小类 | C#语言 | .net语言(通用语言) | 说明 | 大小(字节) | 值区间 | |
基本数据类型(值类型) | 整形 | sbyte | SByte | 8位有符号整数 | 1 | -128~127(负的2的7次方~正的2的7次方减1) | |
short | Int16 | 16位有符号整数 | 2 | -32768~32767(负的2的15次方~正的2的15次方减1) | |||
int | Int32 | 32位有符号整数 | 3 | (负的2的31次方~正的2的31次方减1) | |||
long | Int64 | 64位有符号整数 | 4 | (负的2的63次方~正的2的63次方减1) | |||
byte | Byte | 8位无符号整数 | 1 | 0~255 (0~2的8次方减1) | |||
ushort | UInt16 | 16位无符号整数 | 2 | (0~2的16次方减1) | |||
uint | UInt32 | 32位无符号整数 | 3 | (0~2的32次方减1) | |||
ulong | UInt64 | 64位无符号整数 | 4 | (0~2的64次方减1) | |||
浮点型 | float | Single | 32位单精度浮点数 | 4 | 1.5 × 10−45 到 3.4 × 1038 | ||
double | Double | 64位双精度浮点数 | 8 | 5.0 × 10−324 到 1.7 × 10308 | |||
decimal | Decimal | 128精确浮点数 | 16 | 1.0 × 10−28 到大约 7.9 × 1028 | |||
字符型 | char | Char | 16位Unicode字符,放在''里的是字符 | 2 | |||
布尔型 | bool | Boolean | 表示true或者false | 1 | |||
日期时间 | datetime | DateTime | |||||
结构体 | struct | Struct | |||||
枚举类型 | enum | Enum | |||||
引用类型 | 字符串类型 | string | String | ||||
类 | |||||||
数组 | |||||||
集合 |
二、数据转换
1)、隐式转换
//int a = 123;
//string b = a.ToString();
//double bb = a;
2)、显式转换
//double c = 3.94;
//int d = (int)c;
//Console.WriteLine(d);
//Console.Write("请输入一个整数:");
//int e = int.Parse(Console.ReadLine());
//string s = "123";
//int ss = int.Parse("123");
//int sss = Convert.ToInt32(s);
为什么需要转换
//输入两个数,求他们的和
//Console.Write("请输入a=");
//double s = double.Parse(Console.ReadLine());
//Console.Write("请输入b=");
//double ss = double.Parse(Console.ReadLine());
//Console.WriteLine("他们的和是:"+(s+ss));
//Console.ReadLine();
练习题:
//输入两个数,求他们的和,差,积,商
Console.Write("请输入a="); double s = double.Parse(Console.ReadLine()); Console.Write("请输入b="); double ss = double.Parse(Console.ReadLine()); Console.WriteLine("a+b="+(s+ss)); Console.WriteLine("a-b="+(s-ss)); Console.WriteLine("a*b="+(s*ss)); Console.WriteLine("a/b="+(s/ss));
//输入现在的小时数,判断现在是am还是pm,输出【现在是am/pm几点】
Console.Write("请输入小时数:"); int shi = int.Parse(Console.ReadLine()); string str = (shi > 12) ? "pm" : "am";//时间大于12的减去12,一定要在判断完上午或者下午之后 shi = (shi > 12) ? (shi - 12) : shi; Console.WriteLine("现在是"+str+shi+"点");