C#开发之——数据类型转换(4.7)

一 概述

  • 我们知道C#是一门强类型语言,对类型要求比较严格,但是在一定的条件下也是可以相互转换的,如将int型数据转换为double型数据
  • C#允许使用两种转换方式:隐式类型转换和显示类型转换

二 隐式类型转换和显示类型转换

2.1 隐式类型转换

  • 这些转换是C#默认的以安全方式进行的转换,不会导致数据丢失。
  • 例如,从小的整数类型转换为大的整数类型,从派生类转换为基类

2.2 显示类型转换

  • 显示类型转换,及强制类型转换。显示转换需要强制转换运算符,而且强制转换会造成数据丢失

  • 常用的类型转换方法如下:

    方法描述
    ToBoolean如果可能的话,把类型转换为布尔型
    ToBtye把类型转换为字节类型
    ToChar如果可能的话,把类型转换为单个Unicode字符类型
    ToDateTime把类型(整型或字符串类型)转换为日期-时间 结构
    ToDecimal把浮点型或整数类型转换为十进制类型
    ToDouble把类型转换为双精度浮点型
    ToInt16把类型转换为16位整型类型
    ToInt32把类型转换为32位整数类型
    ToInt64把类型转换为 64 位整数类型
    ToSbyte把类型转换为有符号字节类型
    ToSingle把类型转换为小浮点数类型
    ToString把类型转换为字符串类型
    ToType把类型转换为指定类型
    ToUInt16把类型转换为 16 位无符号整数类型
    ToUInt32把类型转换为 32 位无符号整数类型
    ToUInt64把类型转换为 64 位无符号整数类型

三 隐式数据类型转换

3.1 转换说明

  • 在C#语言中隐式转换是指不需要其他方法数据类型直接即可转换

  • 隐式转换主要是在整型、浮点型之间的转换,将存储范围小的数据类型直接转换成存储范围大的数据类型

  • 例如将int类型的值转换成double类型的值,将int类型的值转换成long类型的值,或者将float类型的值转换成double类型的值

    复制
    1
    2
    3
    4
    
    int a = 100;
    double d = a;  //将int类型转换为double类型
    float f = 3.14f;
    d = f;    //将float类型转换为double类型
    

3.2 隐式转换几种情况

  • 从 sbyte 类型到 short,int,long,float,double,或 decimal 类型
  • 从 byte 类型到 short,ushort,int,uint,long,ulong,float,double,或 decimal 类型
  • 从 short 类型到 int,long,float,double,或 decimal 类型
  • 从 ushort 类型到 int,uint,long,ulong,float,double,或 decimal 类型
  • 从 int 类型到 long,float,double,或 decimal 类型
  • 从 uint 类型到 long,ulong,float,double,或 decimal 类型
  • 从 long 类型到 float,double,或 decimal 类型
  • 从 ulong 类型到 float,double,或 decimal 类型
  • 从 char 类型到 ushort,int,uint,long,ulong,float,double,或 decimal 类型
  • 从 float 类型到 double 类型

四 强制数据类型转换

4.1 强制转换

  • 强制类型转换主要用于将存储范围大的数据类型转换成存储范围小的,但数据类型需要兼容
  • 例如 int 型转换成 float 型是可行的,但 float 型转换成 int 型则会造成数据精度丢失,而且字符串类型与整数类型之间是无法进行强制类型转换的

4.2 转换形式

复制

1
数据类型变量名 = (数据类型)  变量名或值;
  • 这里要求等号左、右两边的数据类型是一致的。例如将 double 类型转换成 int 类型,代码如下

    复制
    1
    2
    
    double dbl_num = 12345678910.456;
    int k = (int) dbl_num ;//此处运用了强制转换
    
  • 这样虽然能将值进行类型的转换,但损失了数据的精度,造成了数据的不准确,因此在使用强制类型转换时还需要注意数据的准确性

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值