C#类型转换
隐式转换
隐式转换:不用写任何指令直接赋值, 底层帮其进行转换,
可以从小的范围的可以转到大的范围
例如: int int1 = 123;//小区间
float f1 = int1;//大区间
int al = 10;
long bl = al; //把int类型数据 赋值给long类型的数据,int类型属于小范围,long大范围数据
long cl = 10;
//int d1 = c1; 报错不允许从大的范围向小范围进行转换
显式转换
必须你主动写代码调用转换逻辑,不是编译器自动帮你转,都算显式
第一种显示转换方法:
强制转换: (要转换的类型)变量
例如:f1 = 123f; int1 = (int)f1;
float aa = 10.2f;
int bb = (int)aa;//把浮点数强制转换成整型 会省略小数部分
Console.WriteLine(bb);//10
第二种显示转换方法
int.Parse() / double.Parse()
专门把字符串转成数值,转换失败会直接报错
int num = int.Parse("520");
double price = double.Parse("99.8");
//2第二种转换int.Parse(); 转成double类型只需要把int.Parse() 改成double.Parse()
//如果要是不能转换的时候 会报错
string cc = "10";
int dd = int.Parse(cc); //把cc转成整型
Console.WriteLine(dd + 10);//20
//转成bool类型
string bbb = "true";//字符串true
bool ccc = bool.Parse(bbb);//把字符串转成bool
Console.WriteLine(ccc);//True
第三种转换万能转换的方法
Convert.ToXxx() 万能转换
适合字符串、数值、布尔等互相转换,最常用。 例如:
//Convert.ToInt16() 转成16位整型,
//Convert.ToInt32() 转成int类型
//Convert.ToInt64() 转成long类型
string ee = "10";//字符串类型
long eee = Convert.ToInt64(ee);
Console.WriteLine(eee + 30);//40
//转成字符串Convert.ToString()
Console.WriteLine(Convert.ToString(10) + 30);//1030
//Convert.ToBoolean()转成bool类型
Console.WriteLine(Convert.ToBoolean("true")); //True
//转成double类型
Convert.ToDouble();
第四种显示转换
int.TryParse() 安全转换(推荐!)
不会报错,转换失败返回 false,适合用户输入。
如果转换成功了 返回值为true,如果没有转换成功 整体结果为false
int.TryParse( 要转换的数据, 转换成功之后的数据) result 就是转换之后的数据
string ff = "ss";
bool success = int.TryParse(ff, out int result); //int 默认值是0,没转成功了,result值是0
Console.WriteLine("转换是否成功" + success + ",转换成功了之后的数据:" + result);
转换为string
-
数转换为string string str = ""+数; string str = 数.ToString();
-
例如 打碗鸡蛋面(10块钱) = 一晚鸡蛋面 int1.ToString() = "123"
int a = 1008611;
string str1 = "" + a;
Debug.Print(str1);
// 保留几位小数
string str2 = a.ToString("F1");
// 转换成数字number(3位分割)
string str2 = a.ToString("n");
// 加上 ¥ 前缀(还有 n 的特性)
string str2 = a.ToString("c");
// 科学计数法表示
string str2 = a.ToString("e");
// 转换为16进制
string str2 = a.ToString("x");
// 转换为百分制
string str2 = a.ToString("p");
Debug.Print(str2);
string转换为其他
-
string 转为 整数
-
int a = int.Parse(字符串);
-
string str = "00123" //可以!
-
string str = "123.0" // 不可以,带了小数点就是实数
-
-
string 转为 实数
-
数据类型 a = 数据类型.Parse(字符串); 3.string 转为 布尔
-
bool b = bool.Parse(字符串);
-
字符串前后可以有空格,但是单词中间不能有空格 3.不分大小写
-
// ①string 转为 整数
// 能转换的前提是本身就是一个数字
string str = " 123nihao ";
string str = "123";
int num = int.Parse(str);
Debug.Print(num + 1);
// ②string 转为 实数
// 注意:可以在 str 前后加空格,但不能加在中间
// 可以在前后中间加若干个0(注意在中后加0时越界问题)
// 只能出现一个小数点(转换后只能是实数)
string str = " 1.230 ";
float num = float.Parse(str);
Debug.Print(num);
// ③string 转为 布尔
string str = "trUE";
bool b = bool.Parse(str);
Debug.Print(b);
示例
// 从小的范围的可以转到大的范围
int al = 10;
long bl = al; //把int类型数据 赋值给long类型的数据,int类型属于小范围,long大范围数据
long cl = 10;
//int d1 = c1; 报错不允许从大的范围向小范围进行转换
//数字转成字符串
int aaaa = 10;
//数字转成字符串最简单的方法使用拼接
string bbbb = aaaa + "";
//数字转成字符串通过采用ToString()指令
Console.WriteLine(aaaa.ToString());
//字符串转数字
int.Parse("10");
Convert.ToInt16("10"); // 结果就是整数
int.TryParse("10", out int r);//r就是整型的数据
更多推荐
所有评论(0)