隐式转换

隐式转换:不用写任何指令直接赋值, 底层帮其进行转换,

可以从小的范围的可以转到大的范围

例如: 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

  1. 数转换为string string str = ""+数; string str = 数.ToString();

  2. 例如 打碗鸡蛋面(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转换为其他

  1. string 转为 整数

    1. int a = int.Parse(字符串);

    2. string str = "00123" //可以!

    3. string str = "123.0" // 不可以,带了小数点就是实数

  2. string 转为 实数

    1. 数据类型 a = 数据类型.Parse(字符串); 3.string 转为 布尔

    2. bool b = bool.Parse(字符串);

    3. 字符串前后可以有空格,但是单词中间不能有空格 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就是整型的数据

更多推荐