- 相干保举
C说话根本之数据范例转换
深切进修C说话时,有须要先领会一下数据范例的观点,和它们之间的夹杂运算与范例转换。上面就有小编分享C说话根本之数据范例转换,接待大师进修!
int x; long y = 123456789101112; x = (int)y; Console.WriteLine(x);
输入成果:
咱们晓得long范例的取值规模是-9223372036854775805~+9223372036854775807;int范例的是:-2147483648~+2147483647
上面的代码中,由于long变量的值跨越了int能包容的最大值,形成了数据的丧失;像如许有能够形成数据丧失或激发非常的任何转换都须要履行显式转换(explicit);
相反的便是履行隐式转换(implicit).
用chencked查抄上面的代码
从图得悉上面的转换抛出了一个溢出非常,显式转换都能够不宁静, (强扭的瓜便是不甜);可是若是
long的值在int的有用值规模内,如许是不会激发非常的.
上面咱们再来看个例子:
int i; double d = 6.88; i = (int)d; Console.WriteLine(i);
输入成果:6
像如许产生精度丧失的咱们能够把他叫做窄化转换,C#与C或C++差别,在C或C++中是能够间接将i=d的.C#的编译器告知咱们,若是接管精度丧失,你就得用显式范例转换.
为甚么咱们初始化float范例的时辰数字的前面都要在数值前面加"F"; 由于C#以为像2.3如许的带小数点的常量是具有更高精度的double范例,编译器将由于丧失精度
而谢绝而履行。以是在给float赋值时要末显式的将常量转换成float的值,要末间接在常量的前面加"F"(小写的也能够).固然咱们普通在处置浮点数的时辰最好仍是间接利用
double如许就能够防止良多范例转换.
此刻咱们换种体例:
像如许把低精度的值赋给高精度变量,咱们就把他叫做宽化转换。
上面来简略说说显式转换的一些限定:
在值范例中,只能在数字、字符(char)、列举(enum)直达换;
不能把bool间接转换成其余范例,其余范例特不能间接转换成bool范例.
第二局部:字符串与值范例的转换
首要是用到: Parse(),Convert,ToString()
string =》值范例 :
string aa = "123"; int num = int.Parse(aa); double db = double.Parse(aa);
固然parse方式另有良多重载方式,我就不逐一列出来了
Convert是不可扩大的,只撑持预约义数目的范例;他许可从任何根基范例转换到其余的根基范例
string str = "true"; bool b = Convert.ToBoolean(str) ? bool.Parse(str) : false; Console.WriteLine(b);
输入成果:True
TryParse传闻这个工具在1.0版本的时辰只要double才有,从2.0才提高的;TryParse()用法也和Parse()方式差未几,只是他前往的是bool值,经由过程out把值赋给变量
他两的区分:TryParse转换失利不会激发非常,只会前往false;被转换的值是null,或格局错误、溢出等等环境,
若是是数值范例out出来的值是0,若是是字符范例则是未界说的值,布尔的是false,....
string str1 = "abc",str2 = "123"; int a, b; int.TryParse(str1,out a); int.TryParse(str2,out b); Console.WriteLine(a); Console.WriteLine(b);
输入成果: 0
123
值范例 =》string:
最初便是tostring()方式,任何数据范例你都能够toString一下,并且toString()能够本身界说转换方式,tostring()是日常平凡用的最多的了,这个就未几说了.
ps:写的很乱,想到甚么写甚么,就当“散文”看吧
【C说话根本之数据范例转换】相干文章:
C说话根本之编码标准11-29
Java数据范例转换03-19
C说话编程根本03-29
c说话根本习题12-05
C说话根本常识12-20
c说话入门根本常识07-18
C说话根本常识汇总12-02
C++类的转换12-11
C说话字符型根本常识11-18