|
|
51CTO旗下网站
|
|
移动端

2.1.3 十进制浮点类型

《C# 6.0本质论(第5版)》第2章数据类型,本章将探讨这些数据类型,更深入地研究字符串类型,并引入数组的概念。本节为大家介绍十进制浮点类型。

作者:周靖/庞燕 译来源:人民邮电出版社|2017-07-21 15:22

2.1.3 十进制浮点类型

C#还提供了128位精度的十进制浮点类型(参见表2-3)。它适合大而精确的计算,尤其是金融计算。

表2-3 decimal类型

与浮点数不同,decimal类型保证范围内的所有十进制数都是精确的。所以,对于decimal类型来说,0.1就是0.1,而不是一个近似值。不过,虽然decimal类型具有比浮点类型更高的精度,但它的范围较小。所以,从浮点类型转换为decimal类型可能发生溢出错误。此外,decimal的计算速度稍慢(虽然这个差别可以忽略不计)。

高级主题:解析浮点类型和decimal类型

除非超过范围,否则decimal数字表示的十进制数都是完全准确的。与此相反,用二进制浮点数表示十进制数,则可能造成舍入错误。这类似于用任何有限数量的十进制数位表示1/3都无法做到精确。类似地,用任何有限数量的二进制数位表示11/10,也无法做到精确。两种情况下都会产生某种形式的舍入错误。

decimal被表示成±N ×10k,其中,N 是96位的正整数,而k 是指数,-28 <= k <= 0。

而二进制浮点数是可以表示成±N ×2k的任意数字。其中,N 是24位(float)或53位(double)的正整数,k 是-149~+104(float)或者-1074~+970(double)范围内的任何整数。


喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:342347198

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

J2EE开发全程实录

J2EE是目前企业级软件开发的首选平台。本书从架构的角度讲解了一个完整的J2EE系统的搭建。内容包括:正则表达式、JSP、Swing、XML等技术在...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊