1. 数据类型与所占内存大小

类型 大小 精度 注意
float 4 7  
double 8 15 默认
long double 16 >double  

精度就是有效数字。
 
2. 声明和初始化

    float number1 {1.12345678901234567890f}; // Precision : 7
double number2 {1.12345678901234567890}; // Precision : 15
long double number3 {1.12345678901234567890L};

后缀f显式声明变量为float类型,而不用编译器进行转化。后缀L同理。

2.1 精度的损失

#include <iostream>
#include <iomanip>
int main(){
float number1 {1.12345678901234567890f}; // Precision : 7
double number2 {1.12345678901234567890}; // Precision : 15
long double number3 {1.12345678901234567890L}; std::cout << std::setprecision(20); // Control the precision from std::cout.
std::cout << "number1 is : " << number1 << std::endl; //7 digits
std::cout << "number2 is : " << number2 << std::endl; // 15'ish digits
std::cout << "number3 is : " << number3 << std::endl; // 15+ digits
}
运行结果为:number1 is : 1.1234568357467651367
number2 is : 1.1234567890123456912
number3 is : 1.1234567890123456789
精度由于在声明变量的时候规定了不同的类型而产生了不同的精度损失。
另一个精度损失的例子(narrow conversion):

float number4 = 192400023.0f;      // Error : narrowing conversion
std::cout << "number4 : " << number4 << std::endl;
运行结果为:
number4 : 1.924e+08
 
2.2 科学计数法
 double number5 {192400023};
double number6 {1.92400023e8};
double number7 {1.924e8}; // Can ommit the lower 00023
// for simplicity if our application allows that.
double number8 {0.00000000003498};
double number9 {3.498e-11}; // multiply with 10 exp(-11)

2.3 无穷大和Nan

double number10{ -5.6 };
double number11{};//Initialized to 0
double number12{}; //Initialized to 0 //result:-inf
double result { number10 / number11 };
//result:nan
result = number11 / number12;

C++学习笔记三:变量与数据类型(浮点型)的更多相关文章

  1. Java学习笔记之——变量与数据类型、运算符

    一.变量 1.变量:变化的值 变量在代码运行期间,开辟了一块空间 .这块空间是有地址的,给这块取了个名字, 这个名字就叫做变量名,这块空间放的东西叫做变量值 2.变量的初始化: (1)先声明再赋值: ...

  2. Mysql学习笔记(一)数据类型

    原文:Mysql学习笔记(一)数据类型 学习内容: Mysql基本数据类型. 1.数字类型.. i.整型     Mysql数据类型             含义(有符号)     tinyint(m ...

  3. 学习笔记(三)--->《Java 8编程官方参考教程(第9版).pdf》:第十章到十二章学习笔记

    回到顶部 注:本文声明事项. 本博文整理者:刘军 本博文出自于: <Java8 编程官方参考教程>一书 声明:1:转载请标注出处.本文不得作为商业活动.若有违本之,则本人不负法律责任.违法 ...

  4. JavaSE学习笔记(1)---数据类型、运算符、控制结构

    javaSE学习笔记(1) 数据类型和运算符 1.注释可以提高程序的可读性.可划分为 单行注释 // 多行注释 /.../ 文档注释 /**...*/ 2.标识符的命名规则: 标识符必须以字母.下划线 ...

  5. Oracle学习笔记三 SQL命令

    SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)  

  6. java之jvm学习笔记三(Class文件检验器)

    java之jvm学习笔记三(Class文件检验器) 前面的学习我们知道了class文件被类装载器所装载,但是在装载class文件之前或之后,class文件实际上还需要被校验,这就是今天的学习主题,cl ...

  7. Mysql学习笔记(二)数据类型 补充

    原文:Mysql学习笔记(二)数据类型 补充 PS:简单的补充一下数据类型里的String类型以及列类型... 学习内容: 1.String类型 2.列类型存储需求 String类型: i.char与 ...

  8. Typescript 学习笔记三:函数

    中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...

  9. ES6学习笔记<三> 生成器函数与yield

    为什么要把这个内容拿出来单独做一篇学习笔记? 生成器函数比较重要,相对不是很容易理解,单独做一篇笔记详细聊一聊生成器函数. 标题为什么是生成器函数与yield? 生成器函数类似其他服务器端语音中的接口 ...

  10. Go语言学习笔记三: 常量

    Go语言学习笔记三: 常量 定义常量 常量就是在声明后不能再修改的量. const x int = 100 const y string = "abc" const z = &qu ...

随机推荐

  1. 三维模型OSGB格式轻量化的纹理压缩和质量保持分析

    三维模型OSGB格式轻量化的纹理压缩和质量保持分析 在三维模型应用中,纹理数据是一个重要的部分,可以为模型增加更多的真实感和细节.但是,由于纹理数据通常会占用大量的存储空间和传输带宽,因此,在OSGB ...

  2. Linux 内核设备驱动程序的IO寄存器访问 (上)

    Linux 内核提供了一套可缓存的设备 IO 寄存器访问机制,即 regmap.regmap 机制支持以统一的接口,访问多种不同类型的设备 IO 寄存器,如内存映射的设备 IO 寄存器,和需要通过 I ...

  3. uniapp 地图如何添加?你要的教程来喽!

    地图在 app 中使用还是很广泛的,常见的应用常见有: 1.获取自己的位置,规划路线. 2.使用标记点进行标记多个位置. 3.绘制多边形,使用围墙标记位置等等. 此篇文章就以高德地图为例,以上述三个常 ...

  4. 树状数组复习 leetcode 307

    Given an integer array nums, find the sum of the elements between indices i and j (i ≤ j), inclusive ...

  5. 对比 MyBatis 和 MyBatis-Plus 批量插入、批量更新的性能和区别

    1 环境准备 demo 地址:learn-mybatis · Sean/spring-cloud-alibaba - 码云(gitee.com) 1.1 搭建 MyBatis-Plus 环境 创建 m ...

  6. 常见python工具的基本构造-入门

    一.常见库 exifread 读取图片中的信息,如GPS信息 https://blog.csdn.net/qq1198768105/article/details/128159598 tkinter ...

  7. Fetch设置超时请求

    promise + fetch + AbortController + setTimeOut 这是一段正常的fetch请求 fetch('www.baidu.com',{}) .then(res=&g ...

  8. dubbo+zookeeper+springboot远程连接,虚拟机和主机分布式操作

    dubbo+zookeeper+springboot远程连接,虚拟机和主机分布式操作 springboot版本:阿里云2.3.7 实现目标 在主机上的消费者可以调用虚拟机中生产者的接口方法 项目目录 ...

  9. 使用 OpenTelemetry 构建 .NET 应用可观测性(3):.NET SDK 概览

    目录 前言 概览 opentelemetry-dotnet opentelemetry-dotnet-contrib opentelemetry-dotnet-instrumentation SDK ...

  10. 【算法】国庆加班,火锅与Linq.AddRange的奇妙螺旋

    在国庆假期的一个傍晚,小悦正在家中享受火锅美食.她嘴里咀嚼着鲜嫩的牛肉,脸上洋溢着满足的微笑.突然,手机铃声响起,打破了这温馨的氛围.她拿起手机一看,是公司打来的电话. "小悦,有个紧急的项 ...