浮点数float类型不能用“==” 否知if语句不起作用

浮点数float类型不能用"==" 否知if语句不起作用

简介

在许多编程语言中,包括Python,浮点数类型(float)的比较是有问题的。浮点数是近似表示的,因此在比较两个浮点数是否相等时可能会遇到精度问题。

比如,如果你使用if (x == 0)来判断浮点数变量x是否等于零,很可能会失效。这是因为浮点数的存储方式和计算方法可能会导致非常小的舍入误差,使得看起来相等的两个浮点数在比较时被认为是不相等的。

为了解决这个问题,可以使用一个很小的容差(tolerance)值来比较浮点数。例如,可以使用if (abs(x - 0) < 0.0001)来判断浮点数x是否接近于零。另外,一些编程语言也提供了专门用于比较浮点数的函数,例如Python的math.isclose()函数。这个函数可以接受一个容差值,用于比较浮点数是否相等。

总之,由于浮点数的精度问题,直接使用==操作符来比较浮点数与零值可能会导致不准确的结果。应该使用容差值或专门的比较函数来进行浮点数的比较。

演练

遇到了这样的问题在主观上判断条件都是成立的,从右下方的打印输出来看,开始的时候怀疑难道是要补上小数点6个0吗???

试了一下还是不行。就是没跳到if语句里面去执行

打上断点依然没有将Status的变量值改为4。

后来改成小于号就能进去if语句里面了。

相关推荐
‎ദ്ദിᵔ.˛.ᵔ₎26 分钟前
STM32入门第一课:32位MCU
stm32·单片机
Yunzenn31 分钟前
强化学习1-Liu2026_GFlowRL_精读笔记
人工智能·笔记·深度学习·机器学习·transformer·集成学习·vllm
天天爱吃肉82181 小时前
# 商用车多体动力学整车仿真学习笔记(开篇总览)
人工智能·笔记·python·功能测试·学习·汽车
一起努力啊~1 小时前
DataWhale组队学习笔记--llm-algo-leetcode(三)
笔记·学习·llm
kdxiaojie2 小时前
Linux 驱动研究 —— V4L2 (3)
linux·运维·笔记·学习
蜜桃味女焊匠人3 小时前
2026焊接保护气体降耗最优改造方案
人工智能·经验分享·其他·机器人
Amazing_Cacao3 小时前
CFCA精品可可饮品中级参数推演:突破液态表达的混沌,实现萃取微观结构的绝对物理可控
笔记
十月的皮皮3 小时前
C语言学习笔记20260717-预处理机制
c语言·笔记·学习
Freedom_my3 小时前
STM32简单项目
stm32·单片机·嵌入式硬件
法雅特吉他3 小时前
新手第一把吉他怎么选?技术参数与决策指南
经验分享·新媒体运营·学习方法·材质·内容运营