C++中double类型数值显示的为省略一些位数后的值,可能会出现两个值显示相同却在比较大小时不相等的情况

通常double类型的数值比较是限定一个范围,两数误差在允许范围内则认为这两个double类型的数是相等的

该过程中将会使用到求绝对值函数

abs(): 求整型对象绝对值

fabs(): 求浮点型对象绝对值

以下代码实现

#include <iostream>
#include <string>
#include <sstream>
#include <stdio.h>
#include <typeinfo>
#include <vector>#include <math.h>  // 绝对值函数头文件using namespace std;int main() {const double eps = 1e-8; // 限定误差范围double num1 = 10.0 / 3;double num2 = 3.333333333333 ;double num3 = 3.33333;cout << "num1 = " << num1 << endl;cout << "num2 = " << num2 << endl;cout << "num3 = " << num3 << endl;if (fabs(num1 - num2) <= eps){cout << "num1和num2相等" << endl;}else{cout << "num1和num2不相等" << endl;}if (fabs(num1 - num3) <= eps){cout << "num1和num3相等" << endl;}else{cout << "num1和num3不相等" << endl;}return 0;
}

结果中num1和num2相等,num1和num3不相等,虽然cout输出的值都相等

C++: double类型数值比较相关推荐

  1. java double==Double_java之double类型数值的比较

    先看demo: public classL26 {/***@paramargs*/ public static voidmain(String[] args) {//TODO Auto-generat ...

  2. double类型数值比较的坑

    double类型的数据不能直接用==比较 需要用包装类型的方法比较: //如果 d1 和 d2 是double类型 if ( Double.doubleToLongBits(d1) == Double ...

  3. double类型的两个数可以直接比较吗?

    原文链接: double类型(浮点数)是否相等的判断方法_haikuotiankongdong的博客-CSDN博客_double比较是否相等 · 举个例子: double a1 = 2.11; dou ...

  4. 用gson得JSON,数值变为double类型 ,去掉double值中的小数位(3.0改为3)

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 1. 项目中有个接口的数据是从缓存中读取再组成JSON 格式返出,原本缓存中数据是这样的: 用Gso ...

  5. double类型数值计算出现误差的解决办法

    因为公司做的项目几乎都跟金钱.货币有关,所以对数字精确度有相当高的要求,而在开发和维护的时候自然经常会涉及到数值的计算. 但是在测试人员测数值的时候数值跟客户提供的数据比对又总是有差异,基本都是±1块 ...

  6. double类型怎么取余_数据类型和运算符

    数据类型和运算符 1.进制 1.1文件存储单位 ​ 任何数据在计算机中都是以二进制的形式存在的,二进制早期由电信号开关演变而来 . ​ 一个电信号或者一个二进制位统称为Bit位,8个Bit位为一组组成 ...

  7. java中float和double型数据在赋值时有哪些注意事项?,java语言中float和double类型的数据在编程时的注意事项...

    float和double类型的数据在编程时的需要注意的地方 package execisetest; public class AccuranceTest {     public static vo ...

  8. 当double类型数学计算精度偏差解决

    使用Java.math包中的BigDecimal类进行高精度计算 1.  通过构造函数的方式把要计算的值给BigDecimal对象传入,使用BigDecimal对象进行乘除加减操作 //通过构造函数的 ...

  9. double类型计算

    由于double类型转换成二进制时可能出现不能被精确的表示,导致我们在进行double类型的计算时,会出现数值不正确的情况. 解决以上问题,我们都很知道应该使用BigDecimal来处理,通常的操作是 ...

最新文章

  1. 机器人最大的人类士人禾力积木_开化县华埠镇中心小学:积木机器人好玩儿~~...
  2. 子图同构问题Ullmann 算法(二)
  3. netstat 查看mysql_CentOS 使用netstat察看mysql端口和连接
  4. UVa11427 Expect the Expected
  5. ftime()函数的用法----算函数运行时间
  6. dategurd oracle_Oracle之11g DataGuard
  7. 程序员如何在春节假期避免加班?
  8. MongoTemplate 关于 insert 和 save 函数的区别
  9. 深入了解absolute
  10. 阶段3 2.Spring_07.银行转账案例_6 测试转账并分析案例中的问题
  11. 【CV】图像恢复(去噪,去模糊,超分)模型 DPDNN 论文笔记
  12. 关于指针总结(指针种类,概念,作用与用途)
  13. 微信小程序.阿里巴巴矢量图标库iconfont使用
  14. mysql中year函数算年龄_MySQL中的YEAR函数
  15. skynet框架应用 (十四) 登录服务
  16. k8s 超详细总结,面试必问
  17. 信息系统自动决策机制的使用
  18. 相亲遇到喜欢的IT男有感
  19. 【Linux】创建、修改和删除用户(useradd | usermod | userdel)
  20. daemon函数理解及参数使用——daemon后进程退出的原因

热门文章

  1. 《基于数字孪生的产品生命周期绿色制造新模式》2019年6月 陶飞等
  2. 每月产量不均衡,怎样分摊费用更合理?
  3. java封装dll文件_java类封装成dll
  4. Stokes theorem
  5. 广州优漫动游公司:UI设计起源及发展,UI设计为何重要?
  6. MacOS Monterey从源码构建安装opencv 4.5.5
  7. 2021年最受欢迎的微信公众号推广方式
  8. chatGPT AI绘画
  9. MetaTrader LiveUpdate 概览
  10. 【软考】-- 计算机组成体系结构(上)【我的1024】