博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
取值范围
阅读量:5982 次
发布时间:2019-06-20

本文共 2696 字,大约阅读时间需要 8 分钟。

 

C# 类型

 

.NET Framework 类型

 

System.Boolean

 

System.Byte

 

System.SByte

 

System.Char

 

System.Decimal

 

System.Double

 

System.Single

 

System.Int32

 

System.UInt32

 

System.Int64

 

System.UInt64

 

System.Object

 

System.Int16

 

System.UInt16

 

System.String

 

 

请记住:在 C# 中不允许使用未初始化的变量。

值类型

默认值

false

0

'\0'

0.0M

0.0D

表达式 (E)0 产生的值,其中 E 为 enum 标识符。

0.0F

0

0L

0

0

将所有的值类型字段设置为默认值并将所有的引用类型字段设置为 null 时产生的值。

0

0

0

 

下表显示了整型的大小和范围,这些类型构成了简单类型的一个子集。

类型

范围

大小

-128 到 127

有符号 8 位整数

0 到 255

无符号 8 位整数

U+0000 到 U+ffff

16 位 Unicode 字符

-32,768 到 32,767

有符号 16 位整数

0 到 65,535

无符号 16 位整数

-2,147,483,648 到 2,147,483,647

有符号 32 位整数

0 到 4,294,967,295

无符号 32 位整数

-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807

有符号 64 位整数

0 到 18,446,744,073,709,551,615

无符号 64 位整数

如果整数表示的值超出了 ulong 的范围,将产生编译错误。

浮点型表(C# 参考)

下表显示了浮点型的精度和大致范围。

类型

大致范围

精度

±1.5e−45 到 ±3.4e38

7 位

±5.0e−324 到 ±1.7e308

15 到 16 位

 

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

下表显示了预定义的隐式数值转换。隐式转换可能在多种情形下发生,包括调用方法时和在赋值语句中。

short、int、long、float、double 或 decimal

short、ushort、int、uint、long、ulong、float、double 或 decimal

int、long、float、double 或 decimal

int、uint、long、ulong、float、double 或 decimal

long、float、double 或 decimal

long、ulong、float、double 或 decimal

float、double 或 decimal

ushort、int、 uint、 long、ulong、 float、double 或 decimal

double

float、 double 或 decimal

<!--[if !vml]--><!--[endif]--> 备注

  • 从 int、uint 或 long 到 float 的转换以及从 long 到 double 的转换的精度可能会降低,但数值大小不受影响。
  • 不存在到 char 类型的隐式转换。
  • 不存在浮点型与 decimal 类型之间的隐式转换。
  • int 类型的常数表达式可转换为 sbyte、byte、short、ushort、uint 或 ulong,前提是常数表达式的值处于目标类型的范围之内。

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

显式数值转换用于通过显式转换表达式,将任何数字类型转换为任何其他数字类型。对于它不存在隐式转换。下表显示了这些转换。

byte、ushort、uint、ulong 或 char

Sbyte 或者 char

sbyte、 byte、 ushort、 uint、 ulong 或 char

sbyte、 byte、 short 或 char

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

sbyte、byte、 short、 ushort、 int 或 char

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

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

sbyte、byte 或 short

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

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

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

 备注

  • 显式数值转换可能导致精度损失或引发异常。
  • 将 decimal 值转换为整型时,该值将舍入为与零最接近的整数值。如果结果整数值超出目标类型的范围,则会引发 。
  • 将 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 值。

转载于:https://www.cnblogs.com/dotnetmvc/p/3734283.html

你可能感兴趣的文章
Servlet
查看>>
比较好的网站及工具
查看>>
Keychain
查看>>
Webview图片自适应
查看>>
使用 getopt() 进行命令行处理
查看>>
js去掉html标记,中正则表达式,去掉字符,截取字符
查看>>
使用Akka Http,ActiveMQ搭建一个邮件发送服务器
查看>>
kvm starting domain: cannot send monitor command
查看>>
Tomcat主配置文件Server.xml详解
查看>>
中考在即,您为孩子选择什么?--读<<招生全攻略>>有感
查看>>
深入剖析 HTML5
查看>>
Mysql mysql.server启动脚本详解 .
查看>>
网格(GridView)+图片(ImageView)+文字(TextView)
查看>>
jquery遇上Ajax
查看>>
iptables
查看>>
我的友情链接
查看>>
RHEL-6.1/5.4安装Heartbeat-3-0-7有可能碰见的各种错误及解决方法
查看>>
win32控制台应用程序中使用CString类型的方法
查看>>
关于authlib集成windows ad失败的分析并解决[草稿]
查看>>
centos5.4 x86_64禁用的服务
查看>>