C#数值转换-显式数值转换表(参考)

 更新时间:2013年04月01日 12:00:39   作者:  
就是在将一种类型转换成另外一种类型时,需要额外的代码来完成这种转换。

什么是显式转换

Explicit Conversion
就是在将一种类型转换成另外一种类型时,需要额外的代码来完成这种转换。

复制代码 代码如下:

int n = 1;
byte b = (byte)n; // 正确,显式转换
byte b2 = n;      // 错误

显式转换需要注意,它的结果不一定是我们想要的。

复制代码 代码如下:

int n = 256;
byte b = (byte)n; // 结果是 0


上面的结果是 0,因为超过 255 了,它就从 0 开始;
如果 n 是 257,那么 b 就是 1;

如果 n 是 258,那么 b 就是 2;
……

由此还得说下 Convert,Convert 这个类用来转换类型,它有很多方法,比如 ToInt32,就是转换成 int。它涉及的类型跨度很大,比如可将 object、string 等转换成 int,而 (int) 则只能将数字类型转换成 int。

更多相关内容,请参见 Convert、Parse、TryParse、(int) 的区别
显式数值转换表(摘自 MSDN)

sbyte

byteushortuintulong  char

byte

Sbyte 或者char

short

sbytebyteushortuintulong  char

ushort

sbytebyteshort  char

int

sbytebyteshortushortuintulong  char

uint

sbytebyteshortushortint  char

long

sbytebyteshortushortintuintulong  char

ulong

sbytebyteshortushortintuintlong  char

char

sbytebyte  short

float

sbytebyteshortushortintuintlongulongchar  decimal

double

sbytebyteshortushortintuintlongulongcharfloat  decimal

decimal

sbytebyteshortushortintuintlongulongcharfloat  double

备注(摘自 MSDN)

显式数值转换可能导致精度损失或引发异常。
将 decimal 值转换为整型时,该值将舍入为与零最接近的整数值。如果结果整数值超出目标类型的范围,则会引发 OverflowException。
将 double 或 float 值转换为整型时,值会被截断。如果该结果整数值超出了目标值的范围,其结果将取决于溢出检查上下文。在 checked 上下文中,将引发 OverflowException;而在 unchecked 上下文中,结果将是一个未指定的目标类型的值。
将 double 转换为 float 时,double 值将舍入为最接近的 float 值。如果 double 值因过小或过大而使目标类型无法容纳它,则结果将为零或无穷大。
将 float 或 double 转换为 decimal 时,源值将转换为 decimal 表示形式,并舍入为第 28 个小数位之后最接近的数(如果需要)。根据源值的不同,可能产生以下结果:
如果源值因过小而无法表示为 decimal,那么结果将为零。
如果源值为 NaN(非数字值)、无穷大或因过大而无法表示为 decimal,则会引发 OverflowException。
将 decimal 转换为 float 或 double 时,decimal 值将舍入为最接近的 double 或 float 值。

相关文章

  • 详解.NET 6如何实现获取当前登录用户信息

    详解.NET 6如何实现获取当前登录用户信息

    这篇文章主要介绍了.NET 6在应用开发时是如何实现当前登陆用户信息获取的,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起了解一下
    2022-01-01
  • C# StartsWith 字符串的实例方法解析

    C# StartsWith 字符串的实例方法解析

    这篇文章主要介绍了C# StartsWith 字符串的实例方法,StartsWith 方法对于需要检查字符串的前缀是否匹配特定模式的情况非常有用,你可以根据返回的布尔值,根据需要执行相应的逻辑操作,需要的朋友可以参考下
    2024-03-03
  • Unity3D使用GL实现图案解锁功能

    Unity3D使用GL实现图案解锁功能

    这篇文章主要为大家详细介绍了Unity3D使用GL实现图案解锁功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-03-03
  • C#实现redis读写的方法

    C#实现redis读写的方法

    这篇文章主要为大家详细介绍了C#实现redis读写的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • C#实现读取DataSet数据并显示在ListView控件中的方法

    C#实现读取DataSet数据并显示在ListView控件中的方法

    这篇文章主要介绍了C#实现读取DataSet数据并显示在ListView控件中的方法,涉及C#操作DataSet及ListView控件的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-10-10
  • C#中的闭包使用详解

    C#中的闭包使用详解

    C#中的闭包是一个强大的概念,它允许函数捕获外部变量并在函数外部访问这些变量,闭包在很多场景下都非常有用,比如在匿名函数、Lambda表达式和委托中,在使用闭包时,我们需要注意变量捕获的副作用、性能影响和内存管理等问题,以确保代码的正确性和性能
    2024-12-12
  • vs2019 实现C#调用c++的dll两种方法

    vs2019 实现C#调用c++的dll两种方法

    这篇文章主要介绍了vs2019 实现C#调用c++的dll两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • c#通过ip获取地理信息

    c#通过ip获取地理信息

    这篇文章主要介绍了c#通过ip获取地理信息的方法,这里是通过cz88和ip138查询的
    2014-01-01
  • 基于Unity实现2D边缘检测

    基于Unity实现2D边缘检测

    这篇文章主要介绍了如何利用Unity实现2D边缘检测,从而达到人物描边效果。文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2022-04-04
  • C#采用递归实现阶乘的方法

    C#采用递归实现阶乘的方法

    这篇文章主要介绍了C#采用递归实现阶乘的方法,很有借鉴价值的一个算法技巧,需要的朋友可以参考下
    2014-08-08

最新评论