内容1.解析转换:将字符串类型转换为其他类型2.将任意类型转换为字符串类型3.隐式转换:自动转换->小范围到大范围自动转换4.显示转换:强制转换->强制从大范围转换到小范围,但是可能会出现精度损失5.最后给大家做个简单的题来考大家:今天学习数据类型转换我整理了一些笔记;1.解析转换:将字符串类型转换为其他类型//数据类型转换//即string"18"==>int18,//1。Parseconversion:convertstringtypetoOthertypes//要转换的数据必须是这样的数据类型stringstrNumber="18";intnum01=int.Parse(strNumber);floatnum02=float.Parse(strNumber);2.将任意类型转换为字符串类型//2.将任意类型转换为字符串类型intnumber=18;字符串str=number.ToString();昨天做老师练习的时候用到了这两种类型的转换,比如我想把char类型转换成int类型,可以先转换成string类型,再把string类型转换成int类型来实现数据转换。最健壮的方式是字符串类充当类似于角色的“容器”。3.隐式转换:自动转换-->从小范围自动转换到大范围//3.隐式转换:自动转换-->自动从小范围转换到大范围byteb3=100;inti3=b3;这个没什么好说的,很好理解,可以把b3变量看成一块“地”,存100,byte占一个字节,int占4个字节,如果一个数据放在内存小的地方,可以放,内存大的地方也可以放。4.显示转换:强制转换-->从大范围强制转换到小范围,但可能会出现精度损失//4.显示转换:强制转换-->强制从大范围转换到小范围,可能会出现Lossofprecisioninti4=100;字节b4=(字节)i4;这个强制转换很强大,但是语法也很简单,我举几个我输入的例子来理解为什么简单bytenumbe1=1;短号码2=2;短resu=numbe1+numbe2;这里第三行报错。这里我们要仔细阅读错误。int类型不能隐式转换为short,也就是说我们的resu变量应该是int类型,或者强制转换。(如果第三行short改成byte,同解)bytenumber1=1;短号2=2;shortresu=(short)(numbe1+number2);//或intresu=numbe1+number2;字节数1=1;字节数2=2;byteresu=(byte)(numbe1+number2);//或intresu=number1+number2;当强制转换出现无法隐式转换的错误时,看到错误提示就可以了,很简单。但是当我尝试其他类型时,我发现了不同的错误。浮点型和小数型不能相加?查阅资料后发现,两者在内存中存储的结构是不一样的。float类型是近似存储(包括double),decimal是精确存储,不能相加。(族长告诉我...)。但是可以加上float和double类型floatnumbe1=1;双numbe2=2;byteresu=(byte)(numbe1+numbe2);//或者双resu=numbe1+numbe2;可以理解为涉及多个变量的运算,结果自动提升为较大的类型。5、最后给大家一个简单的问题来测试大家:代码中的b+=3和b=b+3,这两种写法是不是完全一样?整数=1;一=一+3;一个+=3;字节b=1;b+=3;b=b+3;答案不一样,会报错,因为类型已经提升为int了。加个强制转换就解决了。为什么b+=3不报错?+=是快捷运算符,不执行自动类型提升。但是如果初始b值太大,超出了255的范围,就会从头开始,也就是从0开始。关于C#中数据类型转换介绍的这篇文章到此结束。关于C#数据类型转换的更多内容,请搜索往期文章或继续浏览下方相关文章。希望大家以后多多支持!本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
