【c#】变量类型之间的转换

c#中存在14中变量类型

但是c#作为一种强类型的语言,在定义变量时候就必须明确类型,有时使用时需要对不同的数据类型,进行变量类型之间的转换

对于这c#种的14种变量类型之间的互相转换,主要存在两种转换
1.隐式转换 :表示可以在不同变量类型之间会自动转换
2.显示转换 :需要通过代码设置,才能进行不同变量类型之间的互相

隐式转换基本规则

  1. 不同变量类型之间自动转换

大范围装小范围 — 涉及知识点,变量的存储范围 大范围的变量类型可以隐式转换为小范围类型
有符号 long >int >short >sbyte
无符号 ulong >uint >ushort >byte

浮点数 decimal类型 没办法用隐式转换的形式去存储 double 和float
double > float

特殊类型 bool char string 无联系不能隐式转换

  1. 不同变量大类型之间的转换

无符号,有符号之间 必须遵循:大范围全部包括小范围
所以有符号变量一定不能隐式转换为无符号变量(无符号不包含负数)
无符号可以转换为有符号变量 short>byte int>ushort>byte long>uint>ushort>byte

  1. 浮点数和整数(有符号和无符号)之间

浮点数是可以装载任何类型的整数(decimal,double,float)
整数不能隐式转换为浮点数

  1. 特殊类型

bool类型 不能和其他类型互相隐式转换
char类型 可以隐式的转换 整型和浮点型(字符所对应的ASCII码值) ,不可以隐式存储其他类型的变量
string类型 无法和其他类型进行隐式转换

显式转换基本规则

  1. 括号强转 将高精度的类型强制转换为低精度
	//语法 :变量类型 变量名 = (变量类型)变量;  
   int s = 1; 
   short i = 1 ;   
   i =short)s;

括号强制转换,可能会出现范围问题(范围越界,符号位)或精度问题(精度丢失),造成异常

整型之间,考虑范围问题异常
浮点型之间,会导致精度问题 ,
例如 float f = (float)d double,d比f多的的小数位会缺失导致精度问题(不会四舍五入)
无符号和有符号,同理范围会出现问题 符号位会导致 转换异常
浮点和整形,同浮点型之间 导致精度问题,丢失小数后的位数(不会四舍五入)
char和数值类型 在范围内允许强制转换 (char)int
bool和string 无法通过括号强转

  1. Parse法 把字符串类型转换为对应类型的方法
 //语法: 变量类型.Parse("字符串");            
 int i = int.Parse("123");
 sbyte i = sbyte.Parse("1");
 int.Parse("1");
 short.Parse("1");
 long.Parse("1");
 //......

字符串必须要能够转成对应类型,否则会报错

 int i = int.Parse("12.3");  	 //--->报错
 float i = float.Parse("12.3");  // 不会报错

字符串转成对应类型的范围也一定要在范围之内

  1. Convert法 更准确的将,将各个类型之间进行互相转换 填写的变量或常量必须为正确
语法:Convert.To目标类型(变量或者常量);  
int a = Convert.ToInt32("12");
sbyte sb = Convert.ToSByte("1");  
short = ToInt16;    long =ToInt64;   
byte = ToByte;    	uShort =ToUInt16;  	ulong = ToUInt64;	
float = ToSingle;    double = ToDouble; 	decimal = ToDecimal;  
bool = ToBoolean;  
string = ToString;  char = ToChar;

Convert转换精度 比括号强转精度更高,会进行四舍五入

 //bool类型转int   
 int a =Convert.ToInt32(true); 
 a = 1;
 true = 1; 
 false = 0;
  1. 其他类型转string 拼接打印
 //语法: 变量.ToString();  
 string str = 100.ToString();

可以把任何类型的变量通过ToString方法转换为 字符串

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不二丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值