DataTypes
简单介绍,不深入
bool
只有True 和 False
注意 True False 和 1 0 不是一个概念,是需要相互转换的,一个是int,一个是bool
转换时候可以用System.Convert 和 类型自带的ToString 等
Int32 一个32位的整数,是C#里用的最多的,简写为int
这是有符号的整数,范围是 -2,147,483,648 ~ 2,147,483,647byte
:0-255 无符号整型short
:16位有符号,-32,768 and 32,767long
: 有符号64位,范围不写了,很大
两个整数相除,结果还是整数,要想有小数,把其中一个转换成float
就行了
类型转换
显式转换 或 隐式转换
小类型的可以 隐式的 转换成大类型的,因为编译器知道小值放大空间里可以放得下,反过来就不行了,需要显式转换
隐
显
但是这个显示转换,a的值要是很大超过 了int的范围,这样的转换往往会带来一些隐藏问题,因此转换要注意
float 单精度浮点型 精度差 最多7位有效数字 定义的时候要以f
结尾,不然按默认的double
算了
double 双精度浮点型 精度好 最多16位有效数字
decimal 十进制数 精度最好 最多29位有效数字 定义的时候要以m
结尾
这就是3种数据类型 精度 上的差距
精度越大,运算越慢,但是多次运算后的结果也是最精确的,到底用哪种数据类型,取决于你的需求,你对精度要求高不高,你对运算时间要求快不快,你的数据最大值能有多大,等等
Char
单字符,单引号
前面讲的string
其实就是char
的集合,我们可以用foreach
遍历出string
里的每个char
每个字符都对应一个数字,ASCII码表里只有100多个,那是常规的字母数字符号之类的,还有其他的13000多个Unicode 字符呢
(int)c 把c代表的字符转换成对应的数字
(char)(169) 把数字169转换成对应的字符
https://unicode-table.com/en/ 这里有个对应表,很长很长
Char class 里有一些有用的method 比如检查输入 是不是以数字开头
检查是不是字母,是不是数字,是不是大写,等等等等