在 C# 中处理数字时,一个关键点是要区分整数(小数点后没有数字的数)和浮点数(小数点后有零个或多个数字的数)。
C# 中最常用的两种数值类型是int(32 位整数)和double(64 位浮点数)。
int i = 123;
double d = 54.29;
整数和浮点数都可以使用_字符作为数字分隔符,这在定义较大的数字时会很有帮助:
int largeInt = 1_000_000;
// => 1000000
double largeDouble = 9_876_543.21;
// => 9876543.21
算术运算使用标准的算术运算符(+、-、*等)。数字可以使用标准的比较运算符(<、>=等)以及相等运算符(==)和不等运算符(!=)进行比较。
5 * 6;
// => 30
1.2 > 0.8
// => true
2 != 4
// => true
在数值类型之间转换时,有两种数值转换:
由于int的精度低于double,从int转换为double是安全的,因此属于隐式转换。而从double转换为int可能会丢失数据,所以需要显式转换。
int i = 9;
double d = 2.66;
// Safe conversion, thus implicit conversion
double fromInt = i;
// Potentially unsafe conversion, thus explicit conversion
int fromDouble = (int)d;