C++数据类型的属性与限制

C++数据类型的属性与限制,第1张

C++数据类型的属性与限制,第2张

在C++中,每个内置数据类型都有不同的属性,其中包含的信息对于设计程序非常重要。让我们看看图书馆是如何帮助获取这些信息的。

C++中大约有10种截然不同的整数类型和3种以上的浮点类型,每种数据类型都有不同的数值属性,如数值范围、可以表示的位数或各自的精度等。这些属性对于金融、科学、图形、数字信号处理和其他程序极其重要。本文讨论了如何利用该库在程序中获取这些基本数据类型的数值属性。

"双精度类型可以存储多少位?""用带符号的长整数表示的正数是多少?"如果这些问题的答案对你的程序来说很重要,你如何方便系统地得到答案?答案是:使用标准库。

浮点运动

C++中浮点数据类型的精度是有限的,一些硬件相关的特性导致浮点数据类型的截断和舍入。现在,你可以看到为什么2.0/3.0的结果大约是0.666666666666663。“数字噪音”通常是大多数bug的来源。请看下面的例子:

双d1=2。,d2=3。;
D1/= D2;//2/3
if (d1 * 10 = = (20。/D2))//条件应该是“真”,但是,唉!
{
/永远无法执行的代码
do _ equal();
}

花括号里的代码行永远无法执行,因为= =两边的表达式结果会略有不同。d1*10的结果是6.666666666666661,而20的结果。/d2是6.6666666670。正是这种浮点算法的截断和近似造成了这种差异。在这里,您可以使用缩放整数,但有时这不是一个合适的解决方案。想象一个计算复杂公式的电子表格——它必须使用浮点类型。在这种情况下,ε常数的问题就出现了。通常,ε常数可以用大于1的最小值与给定数据类型的1之差来表示。例如,double类型的小正数为:

#include
#include
using namespace std;
cout

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » C++数据类型的属性与限制

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情