数据类型转换

隐式转换

1. 规则 

  • 小范围 → 大范围 自动转
  • 无数据丢失、无精度损失
  • 语法:直接赋值即可

2. 数值类型隐式转换顺序(从小到大)

byte → short → int → long → float → double
char → int

例子

int a = 100;
double b = a;   // 隐式自动转 int→double

char c = 'A';
int d = c;      // 隐式 char→int

3. 可以隐式转换的场景

  • 整型往更大整型、浮点型转
  • 子类 → 父类(向上转型)
  • 存在 implicit 自定义转换运算符

显式转换

1.字符串转数字

目标数据类型.Parse(字符串); 例如 int.Parse("100"),需确保字符串内容符合格式要求

2.万能转换 

系统提供的通用转换工具类,任意类型互相转换,属于主动手动转换。

//Convert.ToInt16();  转成16位整型
//Convert.ToInt32();  转成32位整型
//Convert.ToInt64();  转成64位整型

string a = "10";
long aa = Convert.ToInt64(a);
Console.WriteLine(aa);


string s = "123";
int num = Convert.ToInt32(s);
double d = Convert.ToDouble(s);

3.任意类型转字符串:对象.ToString()

  • 保留两位小数:3.14.ToString("F2")
  • 千分位显示:3.14.ToString("N2")
  • 货币格式:3.14.ToString("C")
  • 百分比格式:3.14.ToString("P")
string a = "s";
bool success = int.TryParse(a, out int result); //int默认值为零,没转成功result结果为0
Console.WriteLine("是否转换成功?" + success + "转成功后的结果: " + result);

4.强制转

int a = 100;
double b = (double)a;//强制转换成double

运算符

运算符

就是用来做运算、做判断、做赋值的符号。比如:+ - * / = > < && || 这些都是。

1. 算术运算符 

用来加减乘除,和小学数学一样。

符号 作用 例子 结果
+ 5 + 2 7
- 5 - 2 3
* 5 * 2 10
/ 5 / 2 整数得 2,小数得 2.5
% 取余(求余数) 5 % 2 1

整数除以整数,结果还是整数,直接砍掉小数

    int a = 5 / 2;  // a = 2  不是2.5
    

    % 取余:只看除法剩下多少,用来判断奇偶、是否整除

    6 % 2 == 0  // 能整除,偶数
    7 % 2 == 1  // 不能整除,奇数

    2. 赋值运算符

    把右边的值赋给左边变量。

    符号 作用 等价写法
    = 直接赋值 a = 10
    += 加完再赋值 a += 5a = a + 5
    -= 减完再赋值 a -= 5a = a - 5
    *= 乘完再赋值 a *= 5a = a * 5
    /= 除完再赋值 a /= 5a = a / 5
    %= 取余再赋值 a %= 5a = a % 5
    int a = 10;
    a += 3;  // 现在a=13
    

    3. 自增、自减运算符

    ++ 加 1,-- 减 1

    分两种:

    1. 前 ++ ++a:先加 1,再用值
    2. 后 ++ a++:先用原值,再加 1

    int a = 5;
    int b = a++; // 先把5给b,a再变成6
    // b=5  a=6
    
    int c = 5;
    int d = ++c; // c先变成6,再给d
    // d=6  c=6

    4. 关系运算符

    用来判断对错,返回布尔值:对 = true,错 = false

    符号 含义 例子
    > 大于 5 > 3 → true
    < 小于 5 < 3 → false
    >= 大于等于 5 >= 5 → true
    <= 小于等于 3 <= 5 → true
    == 等于(两个等号) 5 == 5 → true
    != 不等于 5 != 3 → true
    • =赋值
    • == 才是判断相等千万别写混!

    5. 三元运算符

    条件 ? 条件为真执行 : 条件为假执行;
    

    通俗:问号前面判断,对取前面,错取后面

    
    // 三目运算符示例
    // 判断是否成年
    int age = 20;
    string s = age >= 18 ? "成年人" : "未成年人";

    6. 逻辑运算符

    用于 if 判断,连接多个条件。

    • &必须全都满足 比如:年龄大于 18 身高大于 160
    • &&: (并且)会造成短路(如果第一个条件为false,另外一个就不走了)
    • ||满足一个就行 比如:会唱歌 或者 会跳舞
    • !取反 !(5>3) 本来是 true,加!变成 false

    先后顺序满足非与或

    // 年龄18以上 并且 分数60以上
    bool res = age >= 18 && score >= 60;//true

    更多推荐