浮点比较特定

2023-12-07

我有一个关于浮点比较的具体问题。我知道由于精度问题,不建议使用 == 比较,但在这种特定情况下,我想知道在所有情况/编译器中,此语句是否都成立?

float a = 1.02f;
float b = 1.02f;

if(a == b)
{
   print(true);
}
else
{
   print(false);
}

换句话说,如果我精确地分配浮点数,不进行加法、减法、降级或升级,这将永远成立吗?


是的,编译器应该一致地转换与相同值相同的浮点常量 - 如果不是,那就是编译器中的错误[当然这并非不可能]。但是,一旦您对该值执行任何其他操作(例如从包含以下内容的文件中读取它)cin)或进行简单的数学计算(加 1.0,然后减 1.0),该值不再保证相同。

如前所述,值“Not A Number”或“NaN”保证永远不等于任何值,并且除!=false,无论与什么进行比较 - 这是浮点规范的一部分。但所有其他常量,只要您只是使用常量分配给变量,它就应该在整个代码中保持不变。

当然,您不能依赖两个不同的编译器从相同的源代码中得出相同的精确值[很多时候它们会这样做,但有时它们只是对最后一位进行一些不同的舍入,或者类似的操作造成差异]

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

浮点比较特定 的相关文章

  • 如何在C++中实现模板类协变?

    是否可以以这样一种方式实现类模板 如果模板参数相关 一个对象可以转换为另一个对象 这是一个展示这个想法的例子 当然它不会编译 struct Base struct Derived Base template
  • SSH 主机密钥指纹与模式 C# WinSCP 不匹配

    我尝试通过 WinSCP 使用 C 连接到 FTPS 服务器 但收到此错误 SSH 主机密钥指纹 与模式不匹配 经过大量研究 我相信这与密钥的长度有关 当使用 服务器和协议信息 下的界面进行连接时 我从 WinSCP 获得的密钥是xx xx
  • 为什么禁止在 constexpr 函数中使用 goto?

    C 14 对你能做什么和不能做什么有规则constexpr功能 其中一些 没有asm 没有静态变量 看起来相当合理 但标准也不允许goto in constexpr功能 即使它允许其他控制流机制 这种区别背后的原因是什么 我以为我们已经过去
  • C# 中可空类型是什么?

    当我们必须使用nullable输入 C net 任何人都可以举例说明 可空类型 何时使用可空类型 https web archive org web http broadcast oreilly com 2010 11 understand
  • 将字符串从非托管代码传递到托管

    我在将字符串从非托管代码传递到托管代码时遇到问题 在我的非托管类中 非托管类 cpp 我有一个来自托管代码的函数指针 TESTCALLBACK FUNCTION testCbFunc TESTCALLBACK FUNCTION 接受一个字符
  • 使用 C# 在 WinRT 中获取可用磁盘空间

    DllImport kernel32 dll SetLastError true static extern bool GetDiskFreeSpaceEx string lpDirectoryName out ulong lpFreeBy
  • .Net Core / 控制台应用程序 / 配置 / XML

    我第一次尝试使用新的 ConfigurationBuilder 和选项模式进入 Net Core 库 这里有很多很好的例子 https docs asp net en latest fundamentals configuration ht
  • 为什么模板不能位于外部“C”块内?

    这是一个后续问题一个答案 https stackoverflow com questions 4866433 is it possible to typedef a pointer to extern c function type wit
  • 如何在 Team Foundation 上强制发表有意义的签入评论?

    我有一个开发团队有一个坏习惯 他们写道poor签入评论 当我们必须在团队基础上查看文件的历史记录时 这使得它成为一场噩梦 我已经启用了变更集评论政策 这样他们甚至可以在签到时留下评论 否则他们不会 我们就团队的工作质量进行了一些讨论 他们很
  • 线程、进程和 Application.Exit()

    我的应用程序由主消息循环 GUI 和线程 Task Factory 组成 在线程中我调用一些第三方应用程序var p new Process 但是当我调用Application Exit 在消息循环中 我可以看到在线程中启动的进程仍在内存中
  • 网络参考共享类

    我用 Java 编写了一些 SOAP Web 服务 在 JBoss 5 1 上运行 其中两个共享一个类 AddressTO Web 服务在我的 ApplycationServer 上正确部署 一切都很顺利 直到我尝试在我的 C 客户端中使用
  • C 中的位移位

    如果与有符号整数对应的位模式右移 则 1 vacant bit will be filled by the sign bit 2 vacant bit will be filled by 0 3 The outcome is impleme
  • AccessViolationException 未处理

    我正在尝试使用史蒂夫 桑德森的博客文章 http blog stevensanderson com 2010 01 28 editing a variable length list aspnet mvc 2 style 为了在我的 ASP
  • 将应用程序从 Microsoft Access 迁移到 VB 或 C#.NET

    我目前正试图说服管理层需要将我们的应用程序之一移植到 NET 该应用程序已经发展成为 Access 中的一个庞然大物 SQL 后端 拥有 700 个链接表 650 个表单 子表单 130 个模块和 850 个查询 我几乎知道这样做的所有主要
  • 如何构建印度尼西亚电话号码正则表达式

    这些是一些印度尼西亚的电话号码 08xxxxxxxxx 至少包含 11 个字符长度 08xxxxxxxxxxx 始终以 08 开头 我发现这个很有用 Regex regex new Regex 08 0 9 0 9 0 9 0 9 0 9
  • 如何在内存中存储分子?

    我想将分子存储在内存中 这些可以是简单的分子 Methane CH4 C H bond length 108 7 pm H H angle 109 degrees But also more complex molecules like p
  • ListDictionary 类是否有通用替代方案?

    我正在查看一些示例代码 其中他们使用了ListDictionary对象来存储少量数据 大约 5 10 个对象左右 但这个数字可能会随着时间的推移而改变 我使用此类的唯一问题是 与我所做的其他所有事情不同 它不是通用的 这意味着 如果我在这里
  • C++ 成员函数中的“if (!this)”有多糟糕?

    如果我遇到旧代码if this return 在应用程序中 这种风险有多严重 它是一个危险的定时炸弹 需要立即在应用程序范围内进行搜索和销毁工作 还是更像是一种可以悄悄留在原处的代码气味 我不打算writing当然 执行此操作的代码 相反
  • 将 viewbag 从操作控制器传递到部分视图

    我有一个带有部分视图的 mvc 视图 控制器中有一个 ActionResult 方法 它将返回 PartialView 因此 我需要将 ViewBag 数据从 ActionResult 方法传递到 Partial View 这是我的控制器
  • 不同类型的指针可以互相分配吗?

    考虑到 T1 p1 T2 p2 我们可以将 p1 分配给 p2 或反之亦然吗 如果是这样 是否可以不使用强制转换来完成 或者我们必须使用强制转换 首先 让我们考虑不进行强制转换的分配 C 2018 6 5 16 1 1 列出了简单赋值的约束

随机推荐

  • 如何从晨星上抓取数据

    所以我对网络抓取世界还是个新手 到目前为止我只真正使用 beautifulsoup 从网站上抓取文本和图像 我想我应该尝试从图表上刮掉一些数据点来测试我的理解 但我对此有点困惑graph 在检查了我想要提取的数据的元素后 我看到了这一点 s
  • 如何使用 jQuery 单击事件基于 JSON 查询异步更改 href 值

    我正在使用bit ly 网址缩短服务缩短发送到 在 Twitter 上分享 功能的某些 URL 我想仅在用户实际按下共享按钮时加载 bit ly url 由于 bit ly 的最多 5 个并行请求限制 Bit ly 的 REST API返回
  • SQL Server ISDATE() 函数 - 有人能解释一下吗?

    因此 我查看了 SQL Server 中 ISDATE 函数的文档 并在示例中看到了这一点 SET DATEFORMAT mdy SELECT ISDATE 15 04 2008 Returns 0 SET DATEFORMAT mdy S
  • C# - 关键字使用 virtual+override 与 new

    在基类型中声明方法有什么区别 virtual 然后使用 在子类型中覆盖它override 关键字而不是简单地使用 new 子类型中声明匹配方法时的关键字 我总是发现这样的事情用图片更容易理解 再次 采用约瑟夫 戴格尔的代码 public c
  • VBA 调试器仅显示集合的 256 个元素

    我正在研究 Excel 宏 调试器是否有一个选项可以像数组一样显示所有元素 如果不是 唯一的解决方法是在膨胀集合后将我的类对象存储在数组中吗 你可以使用debug print并将输出写入立即窗口并以此方式绕过限制 我几乎可以肯定没有办法增加
  • 如何在twig模板中显示包含HTML的字符串?

    如何在 twig 模板中显示包含 HTML 标签的字符串 我的 PHP 变量包含以下 html 和文本 word b a word b 当我在我的树枝模板中执行此操作时 word 我明白了 lt b gt a word lt b gt 我想
  • 使用 Yahoo SMTP 以 PHP 发送邮件

    我如何通过以下方式发送电子邮件Yahoo PHP 中的 SMTP 服务器 你应该使用类似的东西斯威夫特 梅勒 or PHP邮件程序 以下示例适用于 Swift message Swift Message newInstance gt set
  • UnauthorizedAccessException:更改 AD 密码时访问被拒绝

    我尝试编写 C 代码来更新 Server 2012 中的域用户密码 我根据以下代码使用以下代码这个堆栈溢出答案 using var context new PrincipalContext ContextType Domain test c
  • 从 Cocoa 中的文件读取时间戳?

    我想读取文件创建 或上次修改 的时间 如 Finder 修改日期 中所示 Cocoa中有没有现有的方法可以做到这一点 谢谢 如果您使用的是 10 5 或更高版本 则可以使用 NSFileManager attributesOfItemAtP
  • 在 doPost() 中访问请求标头

    要验证 Webhook 我需要从请求标头获取参数 到目前为止 我找不到任何信息是否确实可以在应用程序脚本中访问这些标头 到目前为止唯一有效的是访问发布请求的正文 function doPost e something like this v
  • Google Cloud ML Engine - 作业因内部错误而失败。无法执行作业

    这是我之前训练成功的一个ml job 但当我今天尝试时 它不起作用 所以在那之后我尝试删除桶中的所有东西并重新开始 但它仍然不起作用 给出以下错误 发生内部错误 请在几分钟后重试 如果您仍然遇到错误 请联系 Cloud ML None
  • .prev(选择器)不起作用

    这是问题所在 实时复制 CSS div border 1px solid black HTML div div br div div br div class test Should have a blue border div br di
  • 如何垂直移动JApplet内的图像?

    我已经在 J Applet 中显示了一个图像 球 现在我希望图像以垂直方式 上下 移动 问题是我不知道该怎么做 有人对这个问题有想法吗 您需要将该图像的位置设置为某个计算值 意味着您使用时间 速度和其他限制来计算垂直位置 如何设置该位置取决
  • Ljava.lang.Object;无法转换为 [Ljava.lang.Integer

    我编写了一个泛型类 下面是该类的构造函数 我想做这样的事情 如行中所写 elements E new Object size 因为我不知道运行时的泛型类型 所以它会抛出异常 public class Stack
  • (x==0) 能比 (0==x) 更有效吗? [复制]

    这个问题在这里已经有答案了 可能的重复 if flag 0 和 if 0 flag 哪个执行得更快 我通常将平等条件写为 if 0 x 正如很多人所做的那样 而不是 if x 0 这样当我不小心输入 而不是 时 编译器会告诉我 有人告诉我
  • 在 C# 中将字符串转换为位图

    我想将字符串转换为位图或可以在像素框中显示的内容 我的字符串看起来像这样 string rxstring 0100100100200200200300300300400400400500500500600600600700700700800
  • 递归调用函数以获取用户输入

    我正在尝试制作一个石头剪刀布游戏 并正在尝试验证输入 def player1 x raw input please select Rock r Paper p Scissors s lower if x r or x p or x s or
  • 将 HTML 片段附加到 Angular 6 中的视图

    我从对外部系统的http请求中获取了一段html代码 我应该在我的角度应用程序的视图中显示它 准确地说 这是我必须显示的 html 片段 每个请求和响应都会有点不同 div div 我使用不同的解决方案建议 例如innerHtml 但它们都
  • 当可变字段是等式的一部分时如何实现 IEquatable - GetHashCode 问题

    我在我的应用程序中使用实体框架 我用实体的部分类实现了IEquatable
  • 浮点比较特定

    我有一个关于浮点比较的具体问题 我知道由于精度问题 不建议使用 比较 但在这种特定情况下 我想知道在所有情况 编译器中 此语句是否都成立 float a 1 02f float b 1 02f if a b print true else