类型转换表
发生扩大转换。,当一个类型的值转换为相等或更大范围的另一种类型时。 收缩转换时,会发生一个类型的值转换为较小的另一种类型的值时。 本主题中的表阐释了两种转换类型显示的行为。
扩大转换
下表描述了可以执行,不会丢失信息的扩大转换。
为 Single 或 Double 的那些扩大转换可能会导致丢失精度。 下表描述了有时会导致信息丢失的扩大转换。
类型 | 可以转换,而不会丢失数据 |
---|---|
Byte | UInt16, Int16, UInt32, Int32, UInt64, Int64, Single, Double, Decimal |
SByte | Int16, Int32, Int64, Single, Double, Decimal |
Int16 | Int32, Int64, Single, Double, Decimal |
UInt16 | UInt32, Int32, UInt64, Int64, Single, Double, Decimal |
Char | UInt16, UInt32, Int32, UInt64, Int64, Single, Double, Decimal |
Int32 | Int64, Double, Decimal |
UInt32 | Int64, UInt64, Double, Decimal |
Int64 | Decimal |
UInt64 | Decimal |
Single | Double |
类型 | 可以转换 |
---|---|
Int32 | Single |
UInt32 | Single |
Int64 | Single, Double |
UInt64 | Single, Double |
Decimal | Single, Double |
收缩转换
为 Single 或 Double 的收缩转换可能导致信息丢失。 如果目标类型无法正确表达源的大小,则结果类型设置为常数 PositiveInfinity 或 NegativeInfinity。 ,当 Single 或 Double 的值超过 MaxValue 字段的值时,PositiveInfinity 由部件的正数由零和也会返回。 ,当 Single 或 Double 的值。 MinValue 字段中的值时,会NegativeInfinity 产生负数除以零时和也会返回。 从 Double 的转换到 Single 可能导致 PositiveInfinity 或 NegativeInfinity。收缩转换可能会导致其他数据类型的信息丢失。 但是, OverflowException 引发,如果将类型的值不在目标类型的 MaxValue 和 MinValue 字段指定的范围内,因此,转换在运行时检查确保目标类型的值不超过其 MaxValue 或 MinValue。 对 System.Convert 类的转换始终以这种方式检查。
下表列出了 OverflowException 使用 System.Convert 或所有签出的转换的转换,如果转换的类型的值不在结果类型的定义的大小。
类型 | 可以转换 |
---|---|
Byte | SByte |
SByte | Byte, UInt16, UInt32, UInt64 |
Int16 | Byte, SByte, UInt16 |
UInt16 | Byte, SByte, Int16 |
Int32 | Byte, SByte, Int16, UInt16, UInt32 |
UInt32 | Byte, SByte, Int16, UInt16, Int32 |
Int64 | Byte, SByte, Int16, UInt16, Int32, UInt32, UInt64 |
UInt64 | Byte, SByte, Int16, UInt16, Int32, UInt32, Int64 |
Decimal | Byte, SByte, Int16, UInt16, Int32, UInt32, Int64, UInt64 |
Single | Byte, SByte, Int16, UInt16, Int32, UInt32, Int64, UInt64 |
Double | Byte, SByte, Int16, UInt16, Int32, UInt32, Int64, UInt64 |
Follow me: https://github.com/zce
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?