浮动比较给出不同的结果

2023-12-10

看下面两个代码,告诉我答案差异很大的原因。

#include<stdio.h>
int main() {
    float a = 0.9;
    if(a<0.9)
        printf("hi"); // This will be the answer
    else
        printf("bye");
    return 0;
}

如果我们将 0.9 更改为 0.8,则会打印 else 的语句:

#include<stdio.h>
int main() {
    float a = 0.8;
    if(a<0.8)
        printf("hi");
    else
        printf("bye");//this will be the answer
    return 0;
}

那么为什么当我们只改变一个数字时这个输出就会改变呢?


此错误是由于浮点精度造成的,并且因为您正在比较float键入double价值。尝试将它与浮点文字进行比较:if(a<0.8f)

我建议您阅读以下内容维基百科文章,它详细解释了您的错误发生的原因。

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

浮动比较给出不同的结果 的相关文章

  • ASP.NET MVC 中的经典 ASP (C#)

    我有一个应用程序想要 最终 转换为 ASP NET MVC 我想要进行全面的服务升级 到 ASP NET 但想要使用当前的 ASP 内容来运行当前的功能 这样我就可以在对新框架进行增量升级的同时升级小部分 该站点严重依赖于不太成熟的 VB6
  • OpenCv读/写视频色差

    我试图简单地使用 openCV 打开视频 处理帧并将处理后的帧写入新的视频文件 我的问题是 即使我根本不处理帧 只是打开视频 使用 VideoCapture 读取帧并使用 VideoWriter 将它们写入新文件 输出文件看起来比输入更 绿
  • 在搜索 List 时,为什么 Enumerable.Any(Func predicate) 比带有 if 语句的 foreach 慢

    最近有件事引起了我的好奇心 Why is the Enumerable Any Func
  • 我的线程图像生成应用程序如何将其数据传输到 GUI?

    Mandelbrot 生成器的缓慢多精度实现 线程化 使用 POSIX 线程 Gtk 图形用户界面 我有点失落了 这是我第一次尝试编写线程程序 我实际上并没有尝试转换它的单线程版本 只是尝试实现基本框架 到目前为止它是如何工作的简要描述 M
  • 为什么大多数 C 开发人员使用 Define 而不是 const? [复制]

    这个问题在这里已经有答案了 在许多程序中 define与常量具有相同的用途 例如 define FIELD WIDTH 10 const int fieldWidth 10 我通常认为第一种形式优于另一种形式 它依赖于预处理器来处理基本上是
  • 从 MVC 迁移到 ASP.NET Core 3.1 中的端点路由时,具有角色的 AuthorizeAttribute 不起作用

    我正在尝试将我的项目从 UseMVC asp net core 2 2 兼容样式 升级到 UseEndpoint Routing 并且我的所有请求都被重定向到我的验证失败页面 它与声明有关 如果我删除 Authorize Roles Adm
  • Clang 编译器 (x86):80 位长双精度

    我正在尝试在 x86 Windows 平台上使用本机 80 位长双精度 海湾合作委员会选项 mlong double 80 https gcc gnu org onlinedocs gcc x86 Options html似乎不适用于 cl
  • 如何从 C# 控制器重定向到外部 url

    我使用 C 控制器作为网络服务 在其中我想将用户重定向到外部网址 我该怎么做 Tried System Web HttpContext Current Response Redirect 但没有成功 使用控制器的重定向 http msdn
  • C 语言中 =+(等于加)是什么意思?

    我碰到 与标准相反 今天在一些 C 代码中 我不太确定这里发生了什么 我在文档中也找不到它 In ancientC 版本 相当于 它的残余物与最早的恐龙骨头一起被发现 例如 B 引入了广义赋值运算符 使用x y to add y to x
  • 即使手动设置显示环境变量后,WSL Ubuntu 也会显示“错误:无法打开显示”

    我在 WSL Ubuntu 上使用 g 我使用 git 克隆了 GLFW 存储库 使用了ccmake命令配置并生成二进制文件 然后使用make在 build 目录中最终创建 a文件 我安装了所有OpenGL相关的库 usr ld 我不记得我
  • 在 2D 中将一个点旋转另一个点

    我想知道当一个点相对于另一个点旋转一定角度时如何计算出新的坐标 我有一个块箭头 想要将其相对于箭头底部中间的点旋转角度 theta 这是允许我在两个屏幕控件之间绘制多边形所必需的 我无法使用和旋转图像 从我到目前为止所考虑的情况来看 使问题
  • 将数据打印到文件

    我已经超载了 lt lt 运算符 使其写入文件并写入控制台 我已经为同一个函数创建了 8 个线程 并且我想输出 hello hi 如果我在无限循环中运行这个线程例程 文件中的o p是 hello hi hello hi hello hi e
  • 在非活动联合成员上使用“std::addressof”是否定义明确[重复]

    这个问题在这里已经有答案了 下面的代码是尝试实现constexpr的版本offsetof在 C 11 中 它可以在 gcc 7 2 0 和 clang 5 0 0 中编译 这取决于申请std addressof工会非活跃成员的成员 这是明确
  • 无法将类型“System.IO.Stream”隐式转换为“Java.IO.InputStream”

    我提到了一些类似的问题 但没有一个涉及IO 当我使用时 我在java中使用了相同的代码Eclipse 那次就成功了 但现在我尝试在中使用这段代码Mono for Android C 它不起作用 我正在尝试运行此代码来创建一个InputStr
  • 为什么我不应该对不是由 malloc() 分配的变量调用 free() ?

    我在某处读到 使用它是灾难性的free删除不是通过调用创建的对象malloc 这是真的 为什么 这是未定义的行为 永远不要尝试它 让我们看看当您尝试时会发生什么free 自动变量 堆管理器必须推断出如何获取内存块的所有权 为此 它要么必须使
  • 剪贴板在 .NET 3.5 和 4 中的行为有所不同,但为什么呢?

    我们最近将一个非常大的项目从 NET Framework 3 5 升级到 4 最初一切似乎都工作正常 但现在复制粘贴操作开始出现错误 我已经成功制作了一个小型的可复制应用程序 它显示了 NET 3 5 和 4 中的不同行为 我还找到了一种解
  • WinRT 定时注销

    我正在开发一个 WinRT 应用程序 要求之一是应用程序应具有 定时注销 功能 这意味着在任何屏幕上 如果应用程序空闲了 10 分钟 应用程序应该注销并导航回主屏幕 显然 执行此操作的强力方法是在每个页面的每个网格上连接指针按下事件 并在触
  • 带重定向标准流的 C# + telnet 进程立即退出

    我正在尝试用 C 做一个 脚本化 telnet 项目 有点类似于Tcl期望 http expect nist gov 我需要为其启动 telnet 进程并重定向 和处理 其 stdin stdout 流 问题是 生成的 telnet 进程在
  • 使用 Crypto++ 获取 ECDSA 签名

    我必须使用 Crypto 在变量中获取 ECDSA 签名 我在启动 SignMessage 后尝试获取它 但签名为空 我怎样才能得到它 你看过 Crypto wiki 吗 上面有很多东西椭圆曲线数字签名算法 http www cryptop
  • 错误:无效使用不完整类型“类 Move”/未定义对 Move::NONE 的引用

    拜托 我不知道为什么这个简单的代码被拒绝 它给了我 2 个编译错误 请帮帮我 I use 代码 块 20 03 我的编译器是GNU GCC 移动 hpp class Move public Move Move int int public

随机推荐

  • SQLite Order By 在末尾放置变音符号和特殊字符

    我正在使用 Phonegap 为 iOS 制作一个字典应用程序 在查询数据库中的字母列表时 我使用COLLATE NOCASE ORDER BY term COLLATE NOCASE ASC 这解决了以小写字母开头的术语附加到末尾的问题
  • 使用 Google PHP SpreadSheets 客户端隐藏工作表

    我正在使用以下代码来隐藏电子表格的一些工作表 我使用 php 客户端库 我的目标是仅将所需的工作表导出为 PDF 文件 由于没有方法可以实现这一点 我试图隐藏不需要的工作表 然后导出带有我需要通过电子邮件发送的工作表的电子表格 但所有请求都
  • 如何通过itext绕图像中心旋转?

    double degPi degrees Math PI 180 double a Math cos degPi tImgCover getScaledHeight double b Math sin degPi tImgCover get
  • 检查无限加密是否可用

    如何在 Java 代码中检查当前 JVM 是否具有无限强度的加密可用 本着与 Dan Cruz 的答案相同的精神 但只有一行代码并且不会出现异常 boolean limit Cipher getMaxAllowedKeyLength RC5
  • 如何在 Windows 上仅在批处理文件中设置一次 PATH 环境变量?

    我有一个设置用户路径的批处理文件 并作为 Visual Studio IDE 构建步骤的一部分运行 ECHO OFF ECHO PATH set COMSPEC VCINSTALLDIR vcvarsall bat amd64 setx P
  • pyclipper 安装错误:“tp_print 不是 _typeobject 的成员”

    我正在尝试安装 pyclipper 以与 nototools 一起使用 https github com googlefonts nototools但我无法安装 pyclipper 我认为 Visual Studio 构建工具有一些东西 C
  • NSMutableArray-removeObject 结果删除对象和 nil 元素

    首先 我是 Objective C 的新手 我的班级 Song 有一对属性 在我的主类中 我有一个变量 allSongs 它是一个 NSMutableArray 在这个数组中我添加了所有歌曲对象 我的问题出现在尝试调用 self allSo
  • 使用委托、操作和队列

    我正在使用AWS SDK用于 iOS 将文件上传到本地硬盘到 Amazon S3 存储以及从本地硬盘下载文件 我有能力完成这项工作 但我无法让 S3 委托做出正确响应 以便在操作完成或导致错误时提醒我 我有一系列要上传的文件 对于每个文件
  • 在 R (ggplot) 中注释公式(使用 bqoute 或替代)给出错误

    我想添加一个包含变量的公式作为我的 ggplot 上的注释 regline1 lt 0 00 slope1 lt 1 00 dat lt as data frame c 0 1 dat 2 lt c 0 1 names dat lt c f
  • 如何将 /Home 301 重定向到 root?

    这是我在 Global asax 中删除 Home 的路线 routes MapRoute Root action id new controller Home action Index id UrlParameter Optional 好
  • 如何通过降低特征维数来改进LBP算子

    我在用LBP用MATLAB提取特征但精度太低 如何减少LBP中的特征箱 非常感谢 Use the pcares函数来做到这一点 pcares代表主成分分析残差 residuals reconstructed pcares X ndim re
  • 无法使用 Bottomnavigationview 正确加载片段

    我已经遵循了下面的教程 但我一生都无法让它从收藏夹片段 底部导航视图上的中间图标 开始加载 我已经尝试了一切并到处寻找 我的应用程序将始终加载最喜欢的文本 但底部导航视图将始终突出显示主页图标 直到我选择一个图标 如何解决此问题 让应用程序
  • 对一组值进行排序

    我有这样的价值观 x set 0 000000000 0 009518000 10 277200999 0 030810999 0 018384000 4 918560000 y set 4 918859000 0 060758000 4
  • 如何使用 PHP 将 mysql 转换为 sqlite3

    我在 mysql 服务器上有一个数据库 我想将其转换为 sqlite3 数据库without使用 shell 或 perl 脚本 我需要一些使用 PHP 转换相同内容的帮助 任何帮助 将不胜感激 仅使用 PHP 会相当麻烦 您必须从 mys
  • 将带有位置、颜色等的 networkx 图写入 gexf

    我使用 networkx 构建了一个图表 并使用 spring 布局函数生成了一个漂亮的图 不幸的是 这没有传输到 gexf 文件 我认为networkx工具的重点是能够编写可读的图形文件 所以如果python中有一个简单的解决方案 我会犹
  • 无法在 CentOS 7 上安装 mpi4py

    我有 CentOS 7 并且已经安装了 mpicc 它可以在 C 语言中为 openmpi 工作和编译 我也有 python 2 7 5 并且刚刚安装了 pip 我正在运行此命令并收到以下错误 sudo pip install mpi4py
  • RestKit 核心数据 NSError dealloc 崩溃

    试图找出我在生产版本中看到的问题的根源 并最终能够在测试时重现它 使用 RestKit v0 23 1 当使用以下代码 插入仪器时 执行 RKManagedObjectRequestOperation 时 我收到 一条 Objective
  • 如何用C语言解析HTTP响应?

    我正在编写一个小项目 它使用 HTTP 1 1 GET 和 POST 与一组服务器进行交互 服务器在一些标题行后给了我响应 所以我想使用strtok 函数使用 n作为分隔符 但每当我尝试这样做时就会发生崩溃 有没有简单的方法可以用 C 语言
  • Android:无法在防火墙后面发出 httprequest

    当没有防火墙时 标准 getUrlContent 可以很好地工作 但当我尝试在防火墙后面执行此操作时 我遇到了例外 我尝试在 AVD 管理器中设置 http 代理服务器 但没有成功 知道如何正确设置它吗 顺便说一句 来自 android 文
  • 浮动比较给出不同的结果

    看下面两个代码 告诉我答案差异很大的原因 include