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

时间:2023-05-26 22:26:15 

什么是显式转换

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

byte、ushort、uint、ulong 或 char

byte

Sbyte 或者char

short

sbyte、byte、ushort、uint、ulong 或 char

ushort

sbyte、byte、short 或 char

int

sbyte、byte、short、ushort、uint、ulong 或 char

uint

sbyte、byte、short、ushort、int 或 char

long

sbyte、byte、short、ushort、int、uint、ulong 或 char

ulong

sbyte、byte、short、ushort、int、uint、long 或 char

char

sbyte、byte 或 short

float

sbyte、byte、short、ushort、int、uint、long、ulong、char 或 decimal

double

sbyte、byte、short、ushort、int、uint、long、ulong、char、float 或 decimal

decimal

sbyte、byte、short、ushort、int、uint、long、ulong、char、float 或 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 值。

标签:C#数值转换,显式
0
投稿

猜你喜欢

  • Jmeter非GUI模式运行分布式测试

    2021-11-08 12:42:07
  • mybatisPlus返回Map类型的集合

    2022-01-31 13:37:07
  • Android实现启动页倒计时效果

    2021-07-26 20:50:14
  • springboot集成shiro详细总结

    2022-07-12 14:56:17
  • Java 实现RSA非对称加密算法

    2021-08-19 16:27:51
  • Java容器HashMap与HashTable详解

    2022-03-05 19:25:00
  • Mybatis分页插件PageHelper的使用详解

    2022-02-26 16:43:05
  • C#实现一阶卡尔曼滤波算法的示例代码

    2022-12-23 05:28:45
  • Android 基于agora 开发视频会议的代码

    2021-11-30 02:53:04
  • Android基础之Fragment与Activity交互详解

    2021-12-25 16:02:11
  • Android自定义ScrollView实现阻尼回弹

    2021-11-23 07:20:19
  • Java SWT中常见弹出框实例总结

    2023-08-22 00:42:22
  • Java中自动生成构造方法详解

    2023-06-21 14:17:44
  • Java编程实现汉字按字母顺序排序的方法示例

    2022-10-08 19:39:40
  • Android客户端post请求服务器端实例

    2022-10-10 23:49:43
  • 详解OpenGL Shader抗锯齿的实现

    2021-09-24 21:54:07
  • SpringMVC使用MultipartFile实现文件上传

    2021-07-01 03:50:22
  • c#中设置快捷键

    2021-05-31 20:14:29
  • Android仿360悬浮小球自定义view实现示例

    2021-10-22 10:16:14
  • Java操作Mongodb数据库实现数据的增删查改功能示例

    2023-11-25 00:02:05
  • asp之家 软件编程 m.aspxhome.com