C++入门之浮点数的数据类型

  次阅读 作者:智能小宝 来源:互联网 2016-01-26 10:32 我要评论(0)

浮点数的数据类型有3种,它们是:

● float:单精度浮点数

● double:双精度浮点数

● long double:扩展精度浮点数

这里的术语"精度"是指尾数中的位数。上述数据类型的精度按从上到下的顺序逐步增加,float在尾数中的位数最少,long double的位数最多。注意精度只确定尾数中的位数。某一类型表示的数值的取值范围主要由指数的可能范围确定。

C++的ANSI标准并没有描述精度和数值范围,所以这些类型的精度和数值范围就由编译器决定,编译器通常会最大限度地利用计算机提供的浮点数 功能。一般情况下,long double类型提供的精度大于等于double类型,double类型提供的精度大于等于float类型。

通常,float类型提供7位精度,double类型提供15位精度,long double类型提供19位精度,但double类型和long double类型在几个编译器上的精度是相同的。除了精度有所增加之外,double类型和long double类型的取值范围也在扩大。

在PC上,浮点数类型表示的取值范围如表2-11所示。

表2-11

显然,这些类型都可以表示0,但不能表示0和正负范围中下限之间的值,所以这些下限是非0值中最小的值。

默认情况下,浮点字面量是double类型,下面就看看如何定义这种类型的变量。可以使用关键字double指定浮点数变量,如下面的语句所 示:

double inches_to_mm=25.4;

这个语句把变量inches_to_mm声明为double类型,并把它的值初始化为25.4.在声明浮点数变量时,也可以使用const,在 需要浮点数常量时,就可以这么做。如果希望修改变量的值,声明语句应如下所示:

const double inches_to_mm=25.4; //Define a constant conversion factor

如果不需要double变量提供的精度和取值范围,可以选择使用关键字float来声明浮点数变量。例如:

float pi = 3.14159f;

这个语句定义了一个变量pi,并将其初始值设置为3.14159.字面量尾部的f表示这是一个float类型。如果没有f,该字面量就是 double类型,这不会出什么问题,但编译器会发出一个警告消息。还可以使用大写字母F来表示浮点数字面量是float类型。

要指定类型为long double的字面量,应在数值的最后加上大写或小写字母L.用下面的语句就可以声明并初始化这种类型的变量:

long double root2 = 1.4142135623730950488L; //Square root of 2

使用浮点数变量是很简单的,但没有使用这种变量的经验终究不太好,所以下面举一个这方面的例子。

本站文章信息来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • 未来两年人工智能要怎么走?看这篇就够了

    未来两年人工智能要怎么走?看这篇就够了

  • 韩春雨称已能重复实验结果 近期将有消息公布

    韩春雨称已能重复实验结果 近期将有消息公布

  • 无人驾驶汽车如何改变城市生活?听听他们怎么说

    无人驾驶汽车如何改变城市生活?听听他们怎么说

  • 英国研发“杀生”机器人 通过生命体获取能量

    英国研发“杀生”机器人 通过生命体获取能量

网友点评网友点评
阅读推荐阅读推荐

据国外媒体报道,在过去两年内,聊天机器人(chatbot)、人工智能以及机器学习的研发和采用取得了巨大进展。许多初创公司正利用人工智能和...

霍金 视觉中国 图 英国著名物理学家霍金(Stephen Hawking)再次就人工智能(AI)发声,他认为:对于人类来说,强大AI的出现可能是最美妙的...

文|郑娟娟 今年,人工智能(AI) 60岁了。在AI60岁的时候,笔者想要介绍一下AI100,一个刚刚2岁的研究项目,但它的预设寿命是100年,甚至更长...

AlphaGo与李世石的人机大战,为大众迅速普及了人工智能的概念。 但对谷歌而言,除了下围棋,现在的人工智能进展到哪一步了?未来,人工智能...