当前位置: 首页 > news >正文

浮点数的相等性判断

在编程中,浮点数(如 C/C++ 中的float、double,Python 中的float)的赋值和相等性判断需要特别注意。

因为浮点数在计算机中是近似表示的,直接使用==判断相等可能导致逻辑错误。

一、浮点数的相等性判断

禁止直接使用== 或===判断两个浮点数是否相等,因为精度误差会导致意外结果。

#include <stdio.h>int main() 
{float a = 0.1f + 0.2f;float b = 0.3f;printf("a = %f, b = %f\n", a, b); // 输出可能为 a=0.300000, b=0.300000printf("a == b ? %d\n", a == b);  // 实际输出 0(不相等)!return 0;
}

原因:
0.1 + 0.2的计算结果因二进制精度误差,实际存储值为0.3000000119,而0.3的存储值为0.2999999821,两者并不完全相等,导致==判断失败。

二、正确的判断方法:比较差值是否小于阈值

判断两个浮点数是否 “足够接近”(在可接受的误差范围内),而非完全相等。步骤:

  • 计算两个浮点数的绝对差值。
  • 判断差值是否小于一个极小的阈值(如1e-6,根据精度需求调整)。
#include <stdio.h>int main() 
{float a = 0.1f + 0.2f;float b = 0.3f;printf("a = %f, b = %f\n", a, b); // 输出可能为 a=0.300000, b=0.300000if(a - b <= 0.0001){printf("a = b \n");}else{printf("a != b \n");}return 0;
}
http://www.hskmm.com/?act=detail&tid=29228

相关文章:

  • ubuntu18
  • 2025国庆dp
  • 2025数控锯床厂家权威推荐榜:精密加工与高效生产口碑之选
  • FFmpeg开发笔记(八十二)使用国产直播服务器smart_rtmpd执行推流操作
  • 实验室装修厂家最新权威推荐榜:专业设计与施工品质深度解析
  • 生成式AI在红队测试中的应用:构建自动化工具
  • 杂题 10月份
  • 2025年UV LED点光源厂家权威推荐榜:精准固化与高效能
  • NVR软件快速对比表
  • 20232410 2025-2026-1 《网络与系统攻防技术》 实验一实验报告
  • 在Windows系统打造基于ConEmu的命令行工具环境
  • 2025工矿灯厂家最新权威推荐榜:工业照明技术革新与品质保障
  • ZR 2025 十一集训 Day 1
  • 2025广东粉末厂家最新权威推荐榜:技术实力与市场口碑深度解
  • [KaibaMath]1007 关于数列极限存在的唯一性证明
  • 20232418-郭俊廷-实验一-逆向及Bof基础实践
  • 十月模拟赛
  • 2025年成都软件开发机构最新推荐排行榜,涵CRM,物联网,运维,仓储,人力多系统,技术实力与市场口碑深度解析
  • 2025硅藻土定制厂家权威推荐榜:专业生产与深度定制实力解析
  • 变量、函数命名方式
  • 汉文博士 0.7 版:支持统一码 17.0,新增字体分析器,优化词典编译器
  • 2025燃气采暖锅炉厂家权威推荐榜:高效节能与品质保障口碑之
  • 【python】python进阶——Redis模块 - 教程
  • 2025 年 10 月桥架厂家最新推荐:专业制造与品牌保障口碑之选!
  • 语文_作文_开头结尾
  • 后端缓存好?缓存实用的方案实例直接用就是前端缓存好还
  • 2025年通风天窗厂家最新权威推荐榜:专业性能与高效通风口碑
  • 解决scoop安装的anaconda无法在商店版powershell使用的问题
  • 2025智能吉他厂家最新权威推荐榜:创新科技与卓越音质完美融
  • 2025景区售票系统厂家最新权威推荐榜:智慧票务与高效管理口