【C/C++】C++ 浮点数

2023-10-30

C++ 浮点数

计算机将(2.5、3.64564)这样的值分成两部分存储。一部分表示值,另一部分(缩放因子)用于对值进行放大或缩小。

浮点数的两种表示方法

1. 使用常用的标准小数点表示法(如3.1415926)
2. E表示法(如2.52e+8==252 000 000)

​ 需要注意的是:

1. 既可以使用E,也可以使用e
2. 指数可以是正数,也可以是负数
3. 数字中间不能有空格(7.2 E6是错误的)

void main()
{
    float f1 = 3834e-10;
    float f2 = 3834/1e10,f3 = f1;	
	//输出f1
    std::cout << "当前输出为f1:" << f1 << std::endl;
	//输出f2
    std::printf("当前输出为f2:%.10f\n",f2);
	//输出f3
    std::printf("当前输出为f3:%.10f\n", f3);
    
    //int转float
    float f4 = 10 / 3; //10和3 被默认为两个int型变量  赋值操作向下取整
    std::printf("当前输出为f4:%.10f\n", f4);  //f4=3.0
    float f5 = 10.0 / 3.0;
    std::printf("当前输出为f5:%.10f\n", f5);	 // 10.0/3 = 10/3.0 = 3.33

}

输出结果如下所示:

浮点数优缺点

  • 优势

    1. 可以表示整数之间的值
    2. 由于有缩放因子,表示范围较大
  • 不足

    1. 浮点运算的速度比整数运算慢
    2. 精度降低(如下所示)
void main()
{
	//该程序将f6加1,然后减去1,对结果没有影响
	//原因在于f6是一个左边有23位的数字,float只保存该数字前6位或者前7位,因此修改之后的数字不会对这个值有影响
	float f6 = 2.34E+22f;
	float f7 = f6 + 1.0f;

	std::cout << "f6:" << f6 << std::endl << "f7-f6:" << f7 - f6 << std::endl;
	std::printf("当前输出为f6:%.1f\n当前输出为f7-f6:%.1f\n", f6, f7-f6);
}

输出结果如下:
运行结果2
首先这不是计算问题,C++中float的运算是如此,只保留六位有效数值。
使用%f可以控制小数点前后的个数,如%2.3f表示输出小数点前2位,小数点后三位(但有效位数仍然是六位)。

	float a = 50.25;
	float b = 11.17; 
	std::cout << "a+b:" << a + b << std::endl;//a + b=61.42
	std::printf("a+b=%f\n",a + b);//a + b = 61.419998
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【C/C++】C++ 浮点数 的相关文章

  • 使用 gcc 在 Linux 上运行线程构建块 (Intel TBB)

    我正在尝试为线程构建块构建一些测试 不幸的是 我无法配置 tbb 库 链接器找不到库 tbb 我尝试在 bin 目录中运行脚本 但这没有帮助 我什至尝试将库文件移动到 usr local lib 但这又失败了 任何的意见都将会有帮助 确定您
  • 根据属性的类型使用文本框或复选框

    如果我有这样的结构 public class Parent public string Name get set public List
  • 在一个数据访问层中处理多个连接字符串

    我有一个有趣的困境 我目前有一个数据访问层 它必须与多个域一起使用 并且每个域都有多个数据库存储库 具体取决于所调用的存储过程 目前 我只需使用 SWITCH 语句来确定应用程序正在运行的计算机 并从 Web config 返回适当的连接字
  • std::list 线程push_back、front、pop_front

    std list 线程安全吗 我假设不是这样 所以我添加了自己的同步机制 我认为我有正确的术语 但我仍然遇到问题 每个函数都由单独的线程调用 Thread1 不能等待 它必须尽可能快 std list
  • free 和 malloc 在 C 中如何工作?

    我试图弄清楚如果我尝试 从中间 释放指针会发生什么 例如 看下面的代码 char ptr char malloc 10 sizeof char for char i 0 i lt 10 i ptr i i 10 ptr ptr ptr pt
  • 传递给函数时多维数组的指针类型是什么? [复制]

    这个问题在这里已经有答案了 我在大学课堂上学习了 C 语言和指针 除了多维数组和指针之间的相似性之外 我认为我已经很好地掌握了这个概念 我认为由于所有数组 甚至多维 都存储在连续内存中 因此您可以安全地将其转换为int 假设给定的数组是in
  • -webkit-box-shadow 与 QtWebKit 模糊?

    当时有什么方法可以实现 webkit box shadow 的工作模糊吗 看完这篇评论错误报告 https bugs webkit org show bug cgi id 23291 我认识到这仍然是一个问题 尽管错误报告被标记为RESOL
  • 对类 static constexpr 结构的未定义引用,g++ 与 clang

    这是我的代码 a cp p struct int2 int x y struct Foo static constexpr int bar1 1 static constexpr int2 bar2 1 2 int foo1 return
  • 需要帮助优化算法 - 两百万以下所有素数的总和

    我正在尝试做一个欧拉计划 http projecteuler net问题 我正在寻找 2 000 000 以下所有素数的总和 这就是我所拥有的 int main int argc char argv unsigned long int su
  • 访问外部窗口句柄

    我当前正在处理的程序有问题 这是由于 vista Windows 7 中增强的安全性引起的 特别是 UIPI 它阻止完整性级别较低的窗口与较高完整性级别的窗口 对话 就我而言 我想告诉具有高完整性级别的窗口进入我们的应用程序 它在 XP 或
  • WcfSvcHost 的跨域异常

    对于另一个跨域问题 我深表歉意 我一整天都在与这个问题作斗争 现在已经到了沸腾的地步 我有一个 Silverlight 应用程序项目 SLApp1 一个用于托管 Silverlight SLApp1 Web 的 Web 项目和 WCF 项目
  • C# - 当代表执行异步任务时,我仍然需要 System.Threading 吗?

    由于我可以使用委托执行异步操作 我怀疑在我的应用程序中使用 System Threading 的机会很小 是否存在我无法避免 System Threading 的基本情况 只是我正处于学习阶段 例子 class Program public
  • 为什么这个字符串用AesCryptoServiceProvider第二次解密时不相等?

    我在 C VS2012 NET 4 5 中的文本加密和解密方面遇到问题 具体来说 当我加密并随后解密字符串时 输出与输入不同 然而 奇怪的是 如果我复制加密的输出并将其硬编码为字符串文字 解密就会起作用 以下代码示例说明了该问题 我究竟做错
  • 为什么 C# 2.0 之后没有 ISO 或 ECMA 标准化?

    我已经开始学习 C 并正在寻找标准规范 但发现大于 2 0 的 C 版本并未由 ISO 或 ECMA 标准化 或者是我从 Wikipedia 收集到的 这有什么原因吗 因为编写 审查 验证 发布 处理反馈 修订 重新发布等复杂的规范文档需要
  • C# xml序列化必填字段

    我需要将一些字段标记为需要写入 XML 文件 但没有成功 我有一个包含约 30 个属性的配置类 这就是为什么我不能像这样封装所有属性 public string SomeProp get return someProp set if som
  • C 编程:带有数组的函数

    我正在尝试编写一个函数 该函数查找行为 4 列为 4 的二维数组中的最大值 其中二维数组填充有用户输入 我知道我的主要错误是函数中的数组 但我不确定它是什么 如果有人能够找到我出错的地方而不是编写新代码 我将不胜感激 除非我刚去南方 我的尝
  • 为什么使用小于 32 位的整数?

    我总是喜欢使用最小尺寸的变量 这样效果就很好 但是如果我使用短字节整数而不是整数 并且内存是 32 位字可寻址 这真的会给我带来好处吗 编译器是否会做一些事情来增强内存使用 对于局部变量 它可能没有多大意义 但是在具有数千甚至数百万项的结构
  • 复制目录下所有文件

    如何将一个目录中的所有内容复制到另一个目录而不循环遍历每个文件 你不能 两者都不Directory http msdn microsoft com en us library system io directory aspx nor Dir
  • 如何在 Android 中使用 C# 生成的 RSA 公钥?

    我想在无法假定 HTTPS 可用的情况下确保 Android 应用程序和 C ASP NET 服务器之间的消息隐私 我想使用 RSA 来加密 Android 设备首次联系服务器时传输的对称密钥 RSA密钥对已在服务器上生成 私钥保存在服务器
  • C++ 中的参考文献

    我偶尔会在 StackOverflow 上看到代码 询问一些涉及函数的重载歧义 例如 void foo int param 我的问题是 为什么会出现这种情况 或者更确切地说 你什么时候会有 对参考的参考 这与普通的旧参考有何不同 我从未在现

随机推荐

  • angular2使用Http服务

    当你需要使用Http的时候 需要在你的模块中导入HttpModal 否则会出现Http没有工厂错误 import NgModule from angular core import HttpModule from angular http
  • Android NDK开发——Android studio使用JNI调用OpenCV处理图像

    前言 这里要演示的是使用Android studio 做APP开发 使用JNI与C 交互的demo 一 创建工程 1 创建一个Native C 工程 2 命令工程和指定交互语言 3 指定C 语法版本 4 创建完成之后打开cpp目录下的CMa
  • 心电图心跳信号多分类预测(一)

    目录 1 赛题理解 1 1赛题概况 1 2数据概况 1 3代码示例 1 3 1数据读取 1 3 2分类指标计算示例 2 baseline 2 1 导入第三方包 2 2 读取数据 2 3 数据预处理 2 4 训练数据 测试数据准备 2 5 模
  • gitLab配置ssh实现私钥访问

    1 配置ssh文件 1 cd C Users 用户名 ssh 找到文件夹 删除 ssh 里面所有其他文件方面我们配置要最新的 2 win r cmd 呼出命令行 ssh keygen t rsa C 必须对应gitLab用户名 3 生成文件
  • 如何理解委托

    以前一直没弄懂委托到底有什么用 为什么要用 今天小小总结了一下 如下 总结 delegate 1 委托的定义 1 就是一个类 他定义了方法的类型 2 public delegate void 自定义类型 类型 变量 当然还有匿名委托dele
  • 再谈select, iocp, epoll,kqueue及各种I/O复用机制

    上篇文章太过幼稚 一派胡言 希望没有误导大家 我也是菜鸟 学习本身就是一个不断追求真理的过程 希望能谅解 首先感谢kasicass GG指出错误 已经指导我很多次了 非常感谢 然后我又查阅了一些资料 再次整理 more seriously
  • 老油条表示真干不过,部门新来的00后网络安全工程师已把我卷崩溃,想要润了...

    在程序员职场上 什么样的人最让人反感呢 是技术不好的人吗 并不是 技术不好的同事 我们可以帮他 是技术太强的人吗 也不是 技术很强的同事 可遇不可求 向他学习还来不及呢 真正让人反感的 是技术平平 却急于表现自己的人 每天加班到12点 在老
  • 解决java中html转word文档,转成功后的word文档在断网情况下无法显示图片问题

    前一段时间遇到一个问题 就是将html转成word文档 里面有图片 表格 和各种形式的文字 刚开始的做法是将html代码取出来 然后以留的形式进行保存 后缀名为 doc 当我转成之后发现一切完美 但是图片出现了问题 1 图片大小 像素有问题
  • 用elasticsearch-certutil生成证书

    1 生成CA证书 生成的elastic stack ca zip包含了证书和私钥 证书有效期是10年 elasticsearch certutil ca days 3650 keysize 4096 out cert elastic sta
  • 【Python爬虫】requests+BeautifulSoup4+MongoDB 爬取51job招聘信息(最新)

    新手训练 51job 网站完整的Python爬虫程序 文章目录 前言 一 网站解析 1 分析网站加载形式 2 分析网站的url 二 代码实现 1 引入库 2 解析城市编码 3 获取数据 3 1 解析数据 3 2 数据的清洗和存储 4 完整代
  • react更新props后this.props === nextProps

    1 this props always equals to nextProps 结构 父组件 ComparisonChart 子组件 UniversalChart 问题 父组件中state gt data传到子组件作为props gt da
  • 点击跳转到高德地图,百度地图,腾讯地图进行导航

    现在随着APP定制化的需求 很多APP都需要导航功能 然而自己APP集成一个导航 除了会增加APP大几十兆之外 还没有专业导航软件功能强大 然而现在大部分手机自带导航软件 所以只需要打开调用即可 包括腾讯的微信 都没有直接导航 而是调用了手
  • Ubuntu18.04及以上开机自启动脚本设置方法

    一 问题 ubuntu 18 04及以上系统取消了rc local自启动功能 因此不能像ubuntu16一样通过编辑rc local来设置开机启动脚本 通过下列简单设置后 可以使rc local重新发挥作用 二 方法 1 建立rc loca
  • Django连接MySql

    首先我们需要在Pycharm新建一个Django的项目 新建后的文件目录如下 a init py 标识当前所在目录时一个Python包 通过import导入的包或者方法会被自动识别 b asgi py 一个ASGI兼容的Web服务器的入口
  • Python中os.listdir和os.walk(获取路径方法)的区别

    在Python中 os listdir 和 os walk 是两种不同的方法来获取文件系统中的路径列表 os listdir 这个函数用来获取指定目录下的所有文件和文件夹的名称列表 它接受一个路径参数 返回该路径下的所有项目的名称 包括文件
  • Vue的条件判断

    1 Vue的条件判断 1 vue的条件判断 v if v else if v else 这三个指令与JS的条件语句if else else if类似 Vue的条件指令可以根据表达式的值在DOM中渲染或销毁元素或组件 2 指令v if 可以用
  • 计算机专业毕业设计题目大全 (各类型系统设计大全)

    计算机专业毕业设计题目大全 毕设 论文 答辩通关法则 看这一篇 源码都在下面了 写在前面 尽管论文方法和毕设源码都有 但还是要看课 自己敲完完善好 做好充分准备面对答辩 1 网络留言薄 2 客户管理系统 3 多媒体积件管理库的开发与应用 4
  • QMap的使用(插入、取值、删除、遍历)

    1 创建 里面的数据类型随意都行 QMap
  • Java对象创建过程

    1 用户new一个对象 2 JVM检查常量池 看是否可定位到一个类 所对应的符号引用 并检查该类是否已经加载 解析和初始化 若没有 则执行类加载过程 3 类加载检查通过 JVM为新对象分配内存 由于类已经加载完成 所以内存大小是可以确定的
  • 【C/C++】C++ 浮点数

    C 浮点数 计算机将 2 5 3 64564 这样的值分成两部分存储 一部分表示值 另一部分 缩放因子 用于对值进行放大或缩小 浮点数的两种表示方法 1 使用常用的标准小数点表示法 如3 1415926 2 E表示法 如2 52e 8 25