C++初学(4)

4.1、const限定符

如果程序在多个地方使用同一个常量,则需要修改该常量时,只需修改一个符号定义即可。前面介绍#define语句时说明过,C++有更好的处理符号常量的方法,就是使用const关键字来修改变量声明和初始化。假设需要一个表示一天中小时数的符号常量,在程序中输入下列代码:

const int Hours=24;

这样,便可以在程序中使用Hours,而不是24。常量被初始化后,其值就被固定了,编译器将不允许再修改该常量的值。

一种常见的做法时将名称的首字母大写,以提醒您Hours是个常量;或者将整个变量名称大写,#define经常使用;或者其他易阅读的方式。

注:如果之前学过C语言并打算使用#define来定义常量,应该使用const。它能明确指定类型,并且可以使用C++的作用域规则将定义限制在特定的函数会文件中(后面讨论)。

4.2、浮点数

浮点类型时C++的第二组基本类型,能够表示带小数部分的数字。如2.5,3.1415等等。浮点数能够表示小数值、非常大和非常小的值,它们内部表示方式与整数有天壤之别。

4.2.1、书写浮点数

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

第一种是标准小数点表示法:12.34、4.0、0.00666。即使小数部分为0,小数点也将确保该数字以浮点格式表示。

第二种是E表示法:例如:3.45E6,指的是3.45与1000000相乘的结果;E6指的是10的6次方,6被称为指数,3.45称为尾数。

E表示法确保数字以浮点格式存储,即使没有小数点。注:E可以不分大小写,指数可以整数可以负数,但数字之间不能用空格,例如:7.2 E6。

指数为负数意味着除以10的乘方,而不是乘以10的乘方。因此,8.33E-4表示8.33/10^4,即0.000833。

重点d.dddE+n指的是将小数点向右移n位,而d.dddE-n则是将小数点向左移n位。

4.2.2、浮点类型

C++有三种浮点类型:float、double和long double。这些类型是按照它们可以表示的有效数位和允许的指数最小范围来描述的。有效位是数字中有意义的位。如:51155使用了5个有效位,如果四舍五入写成51000时,有效位为2为,后面3个0为占位符。

C++对于有效位数的要求是:float至少32位,double至少48位且不少于float,long double至少和double一样多。

#include <iostream>
int main()
{using namespace std;cout.setf(ios_base::fixed, ios_base::floatfield);float tub = 10.0 / 3.0;double mint = 10.0 / 3.0;const float millon = 1.0e6;cout << "tub= " <<  tub;cout << ", a millon tubs= " << millon * tub;cout << ",\nand ten millon tubs= ";cout << 10 * millon * tub << endl;cout << "mint = " <<  mint << " and a millon mints= ";cout << millon*mint << endl;return 0;
}

注:该程序用了ostream方法setf(),这种调用迫使输出使用定点表示法,以便更好地了解精度,防止程序把较大的值切换为E表示法,并使程序显示到小数点后6位。参数ios_base::fixed和ios_base::floatfield是通过包含iostream来提供的常量。

程序说明:cout通常会删除结尾的零。例如,将333333.250000显示为333333.25.调用cout.setf()(如上所示)进行替换。由于cout打印6位小数,因此flooat的tub和double的mint都是准确的。当程序将每个数乘以一百万后,tub在第7个3之后就与正确的有了误差。

cout所属的ostream类有一个类成员函数,能够精确地控制输出的格式——字段款度、小数位数等等,反正敬请期待(包讲的)。

4.2.3、浮点常量

书写浮点常量时,如果希望常量时float类型,请使用f或F后缀。long double类型则使用L后缀。

4.2.4、浮点数的优缺点

浮点数有两大优点:

(1)可以表示整数之间的值。

(2)可以表示的范围大得多。

注:浮点运算的速度通常比整数运算慢,且精度将降低。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3269025.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

【Python机器学习】朴素贝叶斯——基于贝叶斯决策理论的分类方法

k-近邻算法和决策树分类器有时会产生错误结果&#xff0c;这是可以要求分类器给出一个最优的类别猜测结果&#xff0c;同时给出这个猜测的概率估计值 概率论是许多机器学习算法的基础&#xff0c;所以深刻理解这一主题就非常重要。有一些使用概率论进行分类的方法。首先是从一…

Godot入门 06死亡机制1.0版

限制相机的底部滚动极限&#xff0c;使用标尺工具量出距离&#xff0c;设置距离为100&#xff0c;并设置平滑停止。 添加新场景&#xff0c;添加节点Area2D&#xff0c;设置碰撞的物理层为2&#xff0c;改节点名为Killzone。 拖动Killzone场景到Game场景中。给Killzone添加Coll…

NameSilo域名注册和解析2024版教程(附优惠码)

上次给大家介绍了国外知名的域名注册商Dynadot&#xff0c;今天再给大家分享另一家国外知名的域名注册商NameSilo&#xff0c;同样性价比很高。使用本站提供的优惠码&#xff1a;ieearn.com&#xff0c;你还可以在首次注册购买域名时享受1美元的优惠&#xff1a; NameSilo简介…

语言模型及数据集

一、定义 1、语言模型的目标是估计序列的联合概率&#xff0c;一个理想的语言模型就能够基于模型本身生成自然文本。 2、对一个文档&#xff08;词元&#xff09;序列进行建模&#xff0c; 假设在单词级别对文本数据进行词元化。 3、计数建模 &#xff08;1&#xff09;其中…

大语言模型是什么,该如何去学习呢

什么是 LLM**&#xff1f;** LLM(大型语言模型&#xff0c; Large Lanage Modle)是一种计算机程序&#xff0c;它可以理解和生成类似人类的文本&#xff1b;它能够像我们人类一样阅读、写作和理解语言。你可以把它想象成一个超级聪明的博学的不知疲惫的24小时全年无休的助手。…

搭建规范化的vue2项目

项目包含的库 Vue2VuexRouterEslintPrettier 环境 vue&#xff1a;2.6.14 eslint&#xff1a;7.32.0 prettier&#xff1a;2.4.1 eslint-plugin-prettier&#xff1a;4.0.0 eslint-plugin-vue&#xff1a;8.0.3 vue/cli&#xff1a;5.0.8 步骤 全局安装cli工具 npm in…

pdf转图片在线转换免费 pdf转图片在线免费 pdf转图片免费在线 工具软件操作步骤方法

pdf转jpg转换后的图片质量不高、排版混乱&#xff1f;PDF和JPG是我们日常工作中最常接触的两种文件格式。很多时候&#xff0c;我们需要将PDF文件转换为JPG格式&#xff0c;方便在不同场合中使用&#xff0c;而JPG是一种广泛使用的图片格式&#xff0c;它在图像质量和文件大小之…

在 LCD 上显示 png 图片-I.MX6U嵌入式Linux C应用编程学习笔记基于正点原子阿尔法开发板

在 LCD 上显示 png 图片 PNG 简介 无损压缩&#xff1a;PNG 使用 LZ77 派生算法进行无损压缩&#xff0c;确保图像质量不受损&#xff0c;且压缩比高 体积小&#xff1a;通过高压缩比&#xff0c;PNG 文件体积小&#xff0c;适合网络传输 索引彩色模式&#xff1a;PNG-8 格式…

1. Vue3入门

文章目录 使用create-vue创建项目关键文件<script setup>语法糖组合式API - reactive和ref函数组合式API - computed组合式API - watch组合式API - 生命周期函数组合式API - 父子通信组合式API - 模版引用组合式API - provide和inject综合案例 使用create-vue创建项目 n…

鸿蒙HarmonyOS【应用开发五、布局使用】

✍️作者简介&#xff1a;小北编程&#xff08;专注于HarmonyOS、Android、Java、Web、TCP/IP等技术方向&#xff09; &#x1f433;博客主页&#xff1a; 开源中国、稀土掘金、51cto博客、博客园、知乎、简书、慕课网、CSDN &#x1f514;如果文章对您有一定的帮助请&#x1f…

CogVideo 实测,智谱「清影」AI视频生成,全民免费,连 API 都开放了!

不得不说&#xff0c;AI 视频生成界最近非常火热~ 前有快手「可灵」开放内测&#xff0c;一下子带火了老照片修复&#xff0c;全网刷屏&#xff1a; 怕是你还没拿到内测资格&#xff0c;被称为 “国货之光” 的「可灵」就结束了免费无限量模式。每天只有66点的免费额度&#x…

【全国大学生电子设计竞赛】2023年H题

&#x1f970;&#x1f970;全国大学生电子设计大赛学习资料专栏已开启&#xff0c;限时免费&#xff0c;速速收藏~

鸿蒙华为登录(以及导航页面跳转)

//登录华为登录界面以及跳转 //切记一定要写路径&#xff0c;不写路径&#xff0c;容易报错&#xff0c;还有一定要记得导一下包&#xff08;Arouter&#xff09; //接下来是鸿蒙界面导航跳转 //进行跳转 TabContent组件不支持设置通用宽度属性&#xff0c;其宽度默认撑满Tab…

AI周报(7.21-7.27)

AI应用-一款能提供情绪价值的智能鸟类喂食器&#xff08;Bird Buddy&#xff09; 图像识别技术&#xff1a;Bird Buddy装备了图像识别技术&#xff0c;能够识别超过1000种鸟类&#xff0c;涵盖了常见的鸟类品种。这种技术能够在鸟类经过时&#xff0c;通过内置麦克风捕捉的声音…

ctfshow web入门 中期测评 web492--web502

web492 <?php include(render/render_class.php); include(render/db_class.php);$action$_GET[action]; if(!isset($action)){header(location:index.php?actionlogin);die(); }if($actioncheck){extract($_GET);if(preg_match(/^[A-Za-z0-9]$/, $username)){$sql &qu…

GUL图形化界面操作(下部)

目录 ​编辑 前言 Swing 窗口 注意点 新增的组件 进度条组件 开关按钮 多面板和分割面板 多面板 分割面板 ​编辑 选项窗口 对话框带三个选项是&#xff0c;否&#xff0c;取消。 对话框提示输入文本: 前言 修炼中&#xff0c;该篇文章为俺很久前的学习笔记 Swi…

【React】详解 Redux 状态管理

文章目录 一、Redux 的基本概念1. 什么是 Redux&#xff1f;2. Redux 的三大原则 二、Redux 的核心组件1. Store2. Action3. Reducer 三、Redux 的使用流程1. 安装 Redux 及其 React 绑定2. 创建 Action3. 创建 Reducer4. 创建 Store5. 在 React 应用中使用 Store6. 连接 React…

网络通信---UDP

前两天做了个mplayer项目&#xff0c;今日继续学习 网络内容十分重要&#xff01;&#xff01;&#xff01; 1.OSI七层模型 应用层:要传输的数据信息&#xff0c;如文件传输&#xff0c;电子邮件等&#xff08;最接近用户&#xff0c;看传输的内容类型到底是什么&#xff09; …

【资料分享】2024第三届钉钉杯大学生大数据挑战赛B题思路解析+双语言代码

2024钉钉杯大学生大数据挑战赛&#xff0c;B题解题思路和双语言代码分享&#xff0c;资料预览&#xff1a;

jenkins参数化构建在UI中定义脚本中使用

先看配置&#xff1a; 流水线脚本&#xff1a; pipeline {agent {//label "${server}"label "${28}"}stages {stage(Hello) {steps {echo "--------------------------"// 只有这个可以输出变量echo "${character_argument}"echo &q…