浮点数的比较 C++

2023-11-09

浮点数的比较 C++

用 “==” 来比较浮点数。返回的数是不确定的。计算机对浮点数的进行计算的原理是只保证必要精度内正确即可。

我们在判断浮点数相等时,推荐用范围来确定,若x在某一范围内,我们就认为相等,至于范围怎么定义,要看实际情况而已了,float,和double 各有不同

例子

#include <iostream>
#include <bitset>
#include <algorithm>
using namespace std;

int main(){
    double d1 = 3.141592654141592654;
    double d2 = 3.141592654141592644;
    double rang = 0.0001;

    cout<<d1<<", "<<d2<<endl;
    // 运行结果是 equals,这是错误的
    if (d1 == d2) {
        cout<<"equals"<<endl;
    }
    else {
        cout<<"Not equals"<<endl;
    }

    double x = d1 - d2;
    // 运行结果是 Not equals 。
    if ( x >= rang && x <= rang ) {
        cout<<"equals"<<endl;
    }
    else {
        cout<<"Not equals"<<endl;
    }
    return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

浮点数的比较 C++ 的相关文章

  • 语言混合:模型和视图

    考虑开发一个应用程序 其中模型将使用 C 使用 Boost 编写 视图将使用 Objective C 使用 Cocoa Touch 编写 哪里有一些示例展示了如何集成 C 和 Objective C 来开发 iPhone 应用程序 直接从源
  • 以编程方式 Godaddy 发送的电子邮件不在“已发送邮件”文件夹中 C#.net

    我正在通过以下方式发送电子邮件ASP NET代码使用godaddy邮件服务器 邮件发送成功 但未存储在已发送邮件文件夹中 我正在使用下面的代码 SmtpClient client new SmtpClient client Host smt
  • C++ 有像 Pascal 一样的“with”关键字吗?

    withPascal 中的关键字可用于快速访问记录的字段 有人知道 C 是否有类似的东西吗 前任 我有一个包含许多字段的指针 但我不想这样输入 if pointer gt field1 pointer gt field2 pointer g
  • C++ - 模板专业化和部分专业化

    我一直在互联网和 stackoverflow 上寻找具体的答案 但我似乎找不到 我必须创建一个通用类 然后实现特定的功能 我的具体说明是 您需要使用模板表达式参数以及模板类专业化和部分专业化 我有一个模板类 template
  • 浏览器收集哪些值作为回发数据?

    当页面被发送回服务器时 浏览器收集每个控件的当前值并将其粘贴到一个字符串中 然后 该回发数据通过 HTTP POST 发送回服务器 Q1 除了控件的 Text 属性和 SelectedIndexchanged 因此除了用户输入数据 之外 控
  • TestMethod:异步任务 TestSth() 不适用于 .NET 4.0

    我正在尝试使用 NET 4 0 BCL Async 和 MsTest 运行异步测试方法 看来这个设置不能处理 测试方法 异步Task测试Sth 由于测试用例资源管理器中缺少条目 将签名更改为异步后void 我可以运行测试用例 但结果错误 根
  • CMake 警告:无法为目标生成安全的链接器搜索路径

    在为 pcl 项目运行 CMake 时 我收到一条警告消息 Configuring done CMake Warning at CMakeLists txt 12 add executable Cannot generate a safe
  • 使用正则表达式匹配以“Id”结尾的单词?

    如何组合一个正则表达式来匹配以 Id 结尾的单词并进行区分大小写的匹配 试试这个正则表达式 w Id b w 允许前面的单词字符Id和 b确保Id位于单词末尾 b是字边界断言
  • 我们应该使用 Eval 还是 Databind 事件?

    当使用 Asp Net 并使用 ListView 等控件创建网站时 使用 Eval 命令是一个好习惯吗 还是应该在 databind 事件中填充文字和数据 取决于您是否想在更新事件上写回数据 在这种情况下数据绑定 如果您只想读取该数据 可以
  • 从 ef core 的子集合中删除一些项目

    我有一个父表和子表 其中父表与子表具有一对多关系 我想删除一些子项 并且希望父项的子集合反映该更改 如果我使用删除选定的子项RemoveRange 那么子集合不会更新 如果我使用Remove从子集合中删除子集合然后 显然 它不如使用效率高R
  • 在 C# 中生成随机值

    如何使用以下命令生成随机 Int64 和 UInt64 值RandomC 中的类 这应该可以解决问题 这是一个扩展方法 因此您可以像调用普通方法一样调用它Next or NextDouble上的方法Random目的 public stati
  • 使用 cudamalloc()。为什么是双指针?

    我目前正在浏览有关的教程示例http code google com p stanford cs193g sp2010 http code google com p stanford cs193g sp2010 学习CUDA 演示的代码 g
  • IEnumerable.比带中断的 for 循环更快吗?

    我们的代码打开表单时遇到了一些缓慢的情况 这可能是由于for循环与break这需要很长时间才能执行 我把它切换到IEnumerable Any 并看到表格很快打开 我现在试图弄清楚是否单独进行此更改会提高性能 或者是否正在访问Product
  • 语义问题 Qt Creator:命名空间“std”中没有名为“cout”的成员

    我开始使用 Qt Creator 编写代码 对于 C 文件 我遇到很多语义问题 99 是 命名空间 yyy 中没有名为 xxx 的成员cpp文件构建 编译和输出没有问题 如果我点击例如cout 我已链接到 iostream 我是否需要在 Q
  • fscanf 和 EOF 中的否定扫描集

    我的文件中有一个以逗号分隔的字符串列表 姓名 1 姓名 2 姓名 3 我想跳过所有逗号来阅读这些名字 我写了以下循环 while true if fscanf file my string 1 break 然而 它总是比预期多执行一次 给定
  • C# - 命名空间内的类型声明

    在命名空间内而不是在类中声明类型的可能用途是什么 For ex namespace Test public delegate void Ispossible 这是有效的并且不会产生任何编译错误 但我无法想象为什么我们会以这种方式声明它而不是
  • 统一;随机物体移动[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在制作一款机器人战斗游戏 我希望敌人随机移动 然后有时会向敌人移动 我希望运动包含在其中的代码 else if avoid fal
  • C 中的静态和动态绑定(严格来说是 C,而不是 C++)是什么?

    我最初对发布这个问题感到担忧 以免它重复 但即使在谷歌搜索了许多关键字之后 我在 StackOverflow 上找不到任何解释 C 的静态和动态绑定的链接 尽管有 C 的问题和答案 但是都涉及classes以及显然不适合 C 的东西 Sta
  • 请解释为什么Java和C对此代码给出不同的答案

    public class Test public static void main String args int i 10 i i System out println value of i is i 输出是 10 当我在中执行类似的代码
  • XmlDocument Save 使文件保持打开状态

    我有一个简单的 C 函数 可以创建一个基本的 XML 文件并保存 private void CreateXMlFile string Filename string Name string Company XmlDocument doc n

随机推荐

  • 使用mysqldump命令导出指定数据库的数据+Java实现数据库的一键导出备份

    由于项目中需要用到在页面添加一个一键数据备份的功能 所以选择使用mysqldump命令的方法 用java的运行时类Java lang Runtime来使用后台窗口 记录下整个实现的过程 1 首先mysqldump命令需要在mysql的bin
  • linux管理控制面板--可视化管理linux

    市面上主要的网站主机分为三大类 具体差异简单说明 虚拟主机 也是大家口中说的 主机空间 可定制化低 适合纯小白和新手 完全不懂技术 说明白点 就是一台云服务器分割空间和内存形成的主机空间 可以用来搭建网站 但是管理权限受到主机厂商一些限制
  • 实现compose的五种思路

    好久没有更新了 最近学习的过程中一直在用联想的思维来去看问题 javascript是一门非常灵活的语言 集合了好多语言的特性和多种编程模式 对于compose的实现 就有非常多的思路 每一种思路都有自己的特点 实现之后 有种殊途同归的快感
  • 谷粒学院学习总结

    目录 项目模块说明 项目功能点 一 后台管理系统功能 1 登录注册功能 2 权限管理功能 3 讲师管理模块 4 课程分类模块 5 课程管理模块 6 统计分析模块 7 Canal数据同步 8 GateWay网关 9 首页Banner模块 待做
  • 统计学基础知识梳理(三)

    假设检验 定义 假设检验是用来判断样本与样本 样本与总体的差异是由抽样误差引起还是本质差别造成的统计推断方法 其基本原理是先对总体的特征作出某种假设 然后通过抽样研究的统计推理 对此假设应该被拒绝还是接受作出推断 假设检验与区间估计都是根据
  • mysql学习笔记(4)_TCL(Transaction Control Language)以及视图

    TCL Transaction Control Language 事务控制语言 事务简介 一个或一组sql语句组成一个执行单元 这个执行单元要么全部执行 要么全不执行 如果其中一条语句执行失败或产生错误 整个单元将会回滚 所有受到影响的数据
  • JSP 项目创建 idea完整版

    JSP 项目创建 idea完整版 打开IntelliJ IDEA 后 File gt new gt project 第二步 JAVA gt Web Application gt next 路径的存放 创建后的文件如图 配置web文件
  • 等保测评所需Linux操作命令

    等保测评所需Linux操作命令 主要测评命令 1 more etc passwd 文件中记录用户的属性信息 包括用户命 密码 用户标识 组标识等信息 2 more etc shadow 口令文件 用于保存包括个人口令在内的数据 不能被普通用
  • 将数组数据转为excel表导出

    安装xlsx依赖 npm install xlsx save npm install file saver script loader save 使用vue element admin 中的src vendor export2Excel j
  • 使用STM32完成基于I2C的AHT20温湿度数据采集

    文章目录 一 内容 二 关于I2C 1 I2C协议 2 软件I2C 3 硬件I2C 三 温湿度数据采集 1 实验器材 2 代码 3 电路连接 4 结果展示 四 总结 五 参考内容 一 内容 学习I2C总线通信协议 使用STM32F103完成
  • 数字成像系统笔记

    imaging algorithm specialist staff image quality engineer cmos sensor color science 3A 狭义3A 自动曝光 自动对焦 自动白平衡 广义 整个相机自动控制
  • 前脚背完这些接口自动化测试面试题,后脚就进了字节测试岗

    1 请结合你熟悉的项目 介绍一下你是怎么做测试的 首先要自己熟悉项目 熟悉项目的需求 项目组织架构 项目研发接口等 功能 接口 自动化 性能 是怎么处理的 第一步 进行需求分析 需求评审 研发和测试对需求达成统一的理解 第二步 架构师会输出
  • vscode终端颜色设置

    terminal integrated inheritEnv false editor fontSize 18 workbench colorCustomizations terminal background 200707 termina
  • 大数据简介&大数据应用场景

    背景 互联网信息化技术高速发展 企业生产过程中产生的数据量呈指数级上升 我们看一组统计 1986年 全球只有0 02EB也就是约21000TB的数据量 2007年 全球就是280EB也就是约300000000TB的数据量 翻了14000倍
  • vi查找替换命令详解

    一 查找 查找命令 pattern
  • Java项目(二)--Springboot + ElasticSearch 构建博客检索系统(3)- 分词器介绍

    分词器介绍 ES作为全文检索服务 势必要对原始的文本进行内容的拆分 才能进行有效的索引 而拆分原始内容到一个一个小的词 或语义单元 这部分的功能由ES的分词器去完成的 常见分词器 standard ES默认的分词器 会将词汇单元进行小写形式
  • VulnHub DC-8

    确定靶机IP地址 扫描靶机的开放端口 发现靶机开放端口有80 22 访问80端口 扫描网站的目录 发现敏感目录user 访问user目录 发现是登陆界面 使用工具查看网站的CMS 发现网站的nid会变化试一试会不会有sql注入漏洞 加个单引
  • 连接数据库时zeroDateTimeBehavior的作用

    在JDBC连接串中有一项属性 zeroDateTimeBehavior 没添加 zeroDateTimeBehavior 在操作值为0的timestamp类型时不能正确的处理 而是默认抛出一个异常 就是所见的 java sql SQLExc
  • MySQL必知必会 学习笔记 第二十八章 安全管理

    用户应该具有适当的访问权 既不能多也不能少 MySQL Administrator提供了图形界面 可用来管理用户和账号权限 MySQL创建一个名为root的用户账号 它对整个MySQL服务器有完全的控制 在日常工作中 决不能使用root 而
  • 浮点数的比较 C++

    浮点数的比较 C 用 来比较浮点数 返回的数是不确定的 计算机对浮点数的进行计算的原理是只保证必要精度内正确即可 我们在判断浮点数相等时 推荐用范围来确定 若x在某一范围内 我们就认为相等 至于范围怎么定义 要看实际情况而已了 float