ylbtech-Docs-.NET-C#-指南-语言参考-关键字-值类型-:浮点数值类型 |
1.返回顶部 |
浮点数值类型(C# 引用)
“浮点类型”是“简单类型”的子集,可以使用文本进行初始化 。 所有浮点类型也是值类型。 所有浮点数值类型都支持算术、比较和相等运算符。
浮点类型的特征
C# 支持以下预定义浮点类型:
C# 类型/关键字 | 大致范围 | 精度 | 大小 | .NET 类型 |
---|---|---|---|---|
float |
±1.5 x 10−45 至 ±3.4 x 1038 | 大约 6-9 位数字 | 4 个字节 | System.Single |
double |
±5.0 × 10−324 到 ±1.7 × 10308 | 大约 15-17 位数字 | 8 个字节 | System.Double |
decimal |
±1.0 x 10-28 至 ±7.9228 x 1028 | 28-29 位 | 16 个字节 | System.Decimal |
在上表中,最左侧列中的每个 C# 类型关键字都是相应 .NET 类型的别名。 它们是可互换的。 例如,以下声明声明了相同类型的变量:
double a = 12.3; System.Double b = 12.3;
每个浮点类型的默认值都为零,0
。 每个浮点类型都有 MinValue
和 MaxValue
常量,提供该类型的最小值和最大有限值。 float
and double
类型还提供可表示非数字和无穷大值的常量。 例如,double
类型提供以下常量:Double.NaN、Double.NegativeInfinity 和 Double.PositiveInfinity。
与 float
和 double
相比,decimal
类型具有更高的精度和更小的范围,因此它适合于财务和货币计算。
可以在表达式中混合使用整型类型和浮点类型。 在这种情况下,整数类型将转换为浮点类型。 根据以下规则对表达式求值:
- 如果其中一个浮点类型是
double
,该表达式在关系比较和相等比较中求值类型为double
或 bool。 - 如果表达式中没有
double
类型,则表达式在关系比较和相等比较中求值类型为float
或 bool。
浮点表达式可以包含下列值集:
- 正和负零
- 正和负无穷大
- 非数字值 (NaN)
- 一组有限的非零值
有关这些值的详细信息,请参阅 IEEE 网站中提供的二进制浮点算术的 IEEE 标准。
可以使用标准数字格式字符串或自定义数字格式字符串设置浮点值的格式。
真实文本
真实文本的类型由其后缀确定,如下所示:
- 不带后缀的文本或带有
d
或D
后缀的文本的类型为double
- 带有
f
或F
后缀的文本的类型为float
- 带有
m
或M
后缀的文本的类型为decimal
下面的代码演示每种类型的示例:
double d = 3D; d = 4d; d = 3.934_001; float f = 3_000.5F; f = 5.4f; decimal myMoney = 3_000.5m; myMoney = 400.75M;
前面的示例还演示了如何将 _
用作数字分隔符 (从 C# 7.0 开始提供支持)。 可以将数字分隔符用于所有类型的数字文本。
还可以使用科学记数法,即指定真实文本的指数部分,如以下示例所示:
double d = 0.42e2; Console.WriteLine(d); // output 42; float f = 134.45E-2f; Console.WriteLine(f); // output: 1.3445 decimal m = 1.5E6m; Console.WriteLine(m); // output: 1500000
转换
浮点数值类型之间只有一种隐式转换:从 float
到 double
。 但是,可以使用显式强制转换将任何浮点类型转换为任何其他浮点类型。 有关详细信息,请参阅内置数值转换。
C# 语言规范
有关更多信息,请参阅 C# 语言规范的以下部分:
请参阅
2.返回顶部 |
3.返回顶部 |
4.返回顶部 |
5.返回顶部 |
6.返回顶部 |
作者:ylbtech 出处:http://ylbtech.cnblogs.com/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 |