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

2.1.3 十进制浮点类型

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

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

【大咖·来了 第7期】10月24日晚8点观看《智能导购对话机器人实践》

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
分享:
大家都在看
猜你喜欢

订阅专栏+更多

活学活用 Ubuntu Server

活学活用 Ubuntu Server

实战直通车
共35章 | UbuntuServer

218人订阅学习

Java EE速成指南

Java EE速成指南

掌握Java核心
共30章 | 51CTO王波

83人订阅学习

Mysql DBA修炼之路

Mysql DBA修炼之路

MySQL入门到高阶
共24章 | yeyingcai

472人订阅学习

读 书 +更多

软件设计师考试全真模拟试题及解析

本书是按照全国计算机技术与软件专业技术资格(水平)考试《软件设计师考试大纲》的要求,参照《软件设计师教程》及近年来考试试题编写的,...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊

51CTO服务号

51CTO播客