【C++知识点整理: 03const与浮点数】


前言

提示:const与浮点数的复习:


一、const限定符

与C相比,C++增加了const限定符来更好的处理符号常量,

1、创建常量

通用格式如下:

const type name = value;

代码如下(示例):

const int Months = 12;

常量被初始化后编译器将不允许在修改该常量的值。

2、常量的命名规则

常见的命名规则是将名称的首字母大写,以提醒您Months是一个常量,当然,这并不是通用约定。也可以将整个字母进行大写,或者在变量前加一个k,例如kmonths。

关于常量的命名约定有许多,很多组织都有特殊的编码约定,要求其程序员遵守。

二、浮点数

浮点类型是C++的第二组基本类型。它能够表示带小数部分的数字。浮点数提供的值范围很大。

1、浮点数的机制

计算机将浮点数,也就是带小数部分的数字分成两个部分进行储存。
一部分表示值,另一部分用于对值进行放大或缩小。

例如:3.1415926和314.15926。

这两个数字除了小数点的位置不同,其他都是相同的。可以将第一个数字表示为0.31415926(基准值)和10(缩放因子),而将第二个数表示为0.31415926和1000.

缩放因子的作用是移动小数点的位置,也正是因为此,我们将其称为浮点。

C++内部表示浮点数的方法与此相同,不过它基于的是二进制数,因此缩放因子是2的幂,不是10的幂

2、浮点数的书写

C++有两种浮点数的书写方式

第一种:
12.3
0.0
6.8
等等,这与我们经常用到的小数写法一致,我们称为标准小数点表示法。

第二种:
6.8e+8
6.8E+8
6.8E8
6.8e8
等等,像6.8e+8指的是6.8与10的八次方相乘的结果。因此6.8e+2表示6.8*100,2称为指数,6.8称为尾数。

E表示法确保数字以浮点格式存储,但注意,即可以使用e,也可以使用E,指数可以是正数,也可以是负数。

+6.8E+8
可选的+、-号数字小数点可选数字可使用E、e可选的+、-号或省略数字

注意
指数为负意味着除以10的乘方。

3、浮点类型

根据表示的有效位数和允许的指数最小范围可以分为三种浮点类型:float、double、long double。

有效位:
是指数字中有意义的位,例如68596的有效位数为5,但是68000的有效位数仅为2位,6和8,其余位数仅为占位符,有效位数不依赖小数点的位置,有几个有效数字便有几个有效位数。

对有效位的要求:
float至少32位,double至少48位,且不少于float,而long double至少和double一样多。
然而,通常float为32位,double为64位,long double为80、96或128位。
另外,指数范围三者至少是-37~37

4、浮点常量

在程序中书写浮点常量时,程序通常将其储存为double类型,如果您希望是float类型,则可以使用f或F后缀,long double则可以使用l或L后缀。

cout << 6.8f << 6.8F << 6.8l << 6.8L << endl;

5、浮点数的缺点

浮点运算速度比整数运算慢,且精度降低

#include <iostream>
using namespace std;
int main()
{
	float f1 = 6.88E+22f;
	float f2 = f1 + 1f;
	cout << "f1=" << f1 << endl;
	cout << "f2 - f1 = " << f2 - f1 << endl;
	return 0;
}

这个程序的结果看上去应该为1,因为一个数加上1再减去它本身,结果为1。
但以下为输出结果:

f1 = 6.88E+22
f2 - f1 = 0;

原因在于6.88E+22是一个23位的有效数字,加上1后,末尾的零变为1,但float只能表示前6或前7位,因此在对23位数字进行修改时,无法对f2产生任何影响。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值