类型转化
数字和数字字符串
数字:1,12,18,20<-----这些都是数字
数字字符串:"12","30","32"<-----这些都是数字字符串
它们的区别在于计算机中的编码不同
由于编码不同所以呢 1="1"<---这个等式是不成立的,当然这里的=号也就是赋值运算符,右边的赋给左边。
int x =2/0.3<----参与运算的操作数类型不同,因此这个表达式是错误,要想这个表达式成立就必须进行类型的转换。
C#中两种类型转换:隐式、显式
隐式:就是一般直接转,不用明显看到就可以成功。
显式:就是明显看出是在做类型转换
------
隐式转换示例:double x;int y=10; x=y;<-----这个表达式是成立的,因为x是浮点,y是整数,而浮点大于整数因此这就发生了隐式转换
-------------
显示转换示例:double x=2.8;int y;y=x;<----此时表达式不成立,要想表达式成功则需要这样写:y=(int)x; <--这样明确指定目标类型(被赋值对象的类型),注意此时不会产生四舍五入,而是直接砍掉小数点后面的
显示转换回导致精度的丢失。有可能发生System.OverflowException<---溢出异常(超过目标类型的容量范围)
float i = 18.89f ; int j = 3; double m = 5;
j = i + j+m;<---正确的表达式:j = (int)i + j + (int)m;
这就是一种显示转换的方法:(目标类型)变量,
语法示例:int i=0;float j=1.8f;i = (int)j;
第二种:目标值类型.Parse(string类型变量)<---仅对数字字符串有效
使用这种显示转换的方法一般会出现的错误是:System.FormatException 输入字符串格式不正确的错误
这种转换字符串表示的值一定要在目标值类型的范围以内,超过就会出错误。
第三种:ToString()转换
语法:目标变量.ToString();
示例:int x=13;x.ToString();
注意:变量在没有明确赋值时,变量的值是不会改变的。
明确赋值有哪些---->例如:x++(明确赋值),x--(明确赋值),x+=2(明确赋值),x=13(明确赋值)
第四种:Convert.To目标类型 转换
Convert是一个类,它下面有很多转换的函数,也就是说这个类就是用于类型转换的。使用以To开头的函数进行类型转换
例如:
Convert.ToInt32(数据)<---转为32位的整数
Convert.ToInt64()\.ToInt16...
Convert.ToDouble().....
可以在编辑器中使用点运算符进行查看。
示例:字符串“12345”转为整数12345
Convert.ToInt32("12345");
注意:使用Convert.ToInt32时会发生四舍五入的情况
===============================================
注意:
类型转换特别是显示转换时,一般出现语法错误的情况比较少而出现语义错误的情况比较多,因此进行运算时如果参与运算的数据类型不一样结果要以精度大,范围大的为准。
以后可以通过类型的判断来防止出现上述的错误。
还可以通过限制外部的数据输入来进行控制防止出现错误。

浙公网安备 33010602011771号