浮点数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语句里面了。

相关推荐
ppo_wu9 小时前
解决夸克网盘自动修改PDF打开方式的方法
经验分享·安全·网络安全
叼烟扛炮10 小时前
[LangChain] 学习笔记(06):突破大模型限制——结构化输出(Structured Output)
windows·笔记·学习·langchain
且从容.11 小时前
VUE3学习笔记(根据黑马教程总结)
笔记·学习
蒸蒸yyyyzwd13 小时前
关于 AI 开发相关的一些面经。
笔记·学习
2603_9696948514 小时前
JDBC 基础学习笔记:API 核心原理解析与 CRUD 代码实操
数据库·笔记·mysql·学习方法·database·sql注入
迪康coolmu15 小时前
出差终端数据安全落地实战:基于迪康端点安全一体化管理系统的四道防线实践
运维·服务器·经验分享·笔记·其他·安全·php
lzj_pxxw15 小时前
STM32移植FreeRTOS(Cmake+CubeMX)
vscode·stm32·嵌入式硬件
Zw-awa17 小时前
屏幕不止一种:OLED、LCD1602字符屏、TFT/IPS图形屏和串口屏怎么用,这与TTY和PTY又有什么关系
stm32
无咎.lsy18 小时前
《机器学习》笔记
笔记·机器学习
深圳智根网络程序开发18 小时前
WP做外贸站,Yoast和RankMath到底选哪个?
经验分享