带浮动的无限 for 循环

2023-12-06

考虑以下代码:

for (float i = 0f; i < int.MaxValue; i++)
{
    // Some code
}

Which is supposed to loop from 0 to int.MaxValue (231-1), but it doesn't. Once i reached 224, i++ doesn't work anymore for a reason that I'm totally unable to understand.

在 VS 的立即窗口中我尝试过以下操作:

>i
16777216.0
>i + 1
16777216.0 // ???
>i == i + 1
false // as expected, but a lack of consistency with upper statement
>i + 2
16777218.0

Why does it behave like so? What is special with 224+1?


这是因为浮动精度。它基于 IEEE 浮点运算标准 (IEEE 754)。阅读它以了解浮点的工作原理。

简单来说,当浮点数本身存储一个大值时;当前存储的数字与它可以存储的下一个数字之间的差值大于 1,因此加 1 不会增加其值。

如果您需要精确的十进制数,请使用decimal反而。
如果您需要大于 int 的整数值,则使用long.
如果您需要非常大的整数值,那么使用大整数.

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

带浮动的无限 for 循环 的相关文章

  • MySql 最后插入 ID,连接器 .net

    我正在使用 MySql Connector net 我需要获取最后一个查询生成的插入 id 现在 我假设返回值是MySqlHelper ExecuteNonQuery应该是最后一个插入id 但它只返回1 我正在使用的代码是 int inse
  • 使用 JSON 格式正确配置 NLog 到 IHostBuilder

    我有以下代码 应该接受 NLog 的 JSON appsettings 配置 然后使用它来创建 NLog LogFactory 这个 NLog 工厂应该被传递到 MyService 类中 以便在那里创建一个记录器 class Program
  • 使用预编译头减少 clang 编译时间

    我正在开发一个数据库项目 该项目将查询 以某种高级语言表示 编译为 C 代码 这段代码由数据库编译并执行 那部分工作得很好 现在 我正在尝试减少 C 查询代码的编译时间 我想知道是否可以使用预编译头来提高性能 该查询被转换为一个名为 Que
  • 宏可以按参数数量重载吗?

    如何this https stackoverflow com q 9183993 153285工作 如何实现 C99 C 11 可变参数宏以仅根据为其提供多少个参数来扩展到不同的事物 编辑 请参阅末尾以获得现成的解决方案 要获得重载的宏 首
  • C++:将模板参数的模板类型成员添加为好友的正确语法?

    我有一个带有模板类型参数 tTRAIT 的类 我想加一个模板为好友type member aliastTRAIT 但我无法弄清楚语法 这可能吗 template
  • 在不使用 ncurses 的情况下用 C/C++ 编写“真正的”交互式终端程序,例如 vim、htop...

    不 我不想使用ncurses 因为我想了解如何 终端可以工作 并且我自己编程也很有趣 没有 必须是可移植的 它必须只能在基于 linux xterm 的终端仿真器上工作 我想做的是编写一个交互式终端应用程序 例如 htop 和 vim 我的
  • 使用 size_t 值反向遍历向量

    我想以相反的方向遍历向量的值 如您所知 向量的大小为 size t 当我使用以下代码时 for size t r m size 1 r gt 0 r x r f r for size t c r 1 c lt m size c x r m
  • C++:初始化静态字符串成员

    我在 C 中初始化静态字符串成员时遇到一些问题 我有几个类 每个类都包含几个表示 id 的静态字符串成员 当我通过调用静态函数初始化变量时 一切都很好 但是 当我想为一个变量分配另一个变量的值时 它仍然保留空字符串 这段代码有什么问题 st
  • 命名空间“Microsoft”中不存在类型或命名空间名称“Practices”

    我正在使用 Microsoft Visual Studio 2005 for c 我的代码中有以下命名空间 using Microsoft Practices EnterpriseLibrary using Microsoft Practi
  • C for 循环索引:新 CPU 中的前向索引更快吗?

    在我订阅的邮件列表上 两位知识渊博的 IMO 程序员正在讨论一些优化的代码 并说了以下内容 在 5 8 年前发布的 CPU 上 向后迭代 for 循环稍微快一些 e g for int i x 1 i gt 0 i 因为比较i归零比将其与其
  • 将一个整数从 C 客户端发送到 Java 服务器

    我使用此代码将一个整数从我的 Java 客户端发送到我的 Java 服务器 int n rand nextInt 50 1 DataOutputStream dos new DataOutputStream socket getOutput
  • DotNET 应用程序中的 GDI 句柄

    我的纯 DotNET 库作为非托管桌面应用程序中的插件运行 我收到了稳定的 虽然低 崩溃报告流 这些报告似乎表明 GDI 句柄存在问题 错误消息中的字体等 恢复为系统字体 各种控件的显示崩溃 不久后发生大规模崩溃 我的窗体几乎没有控件 但我
  • 只读有运行时开销吗?

    出于某种原因 我一直认为readonly字段有与其相关的开销 我认为这是 CLR 跟踪是否存在readonly字段是否已初始化 这里的开销是一些额外的内存使用量 用于跟踪状态以及分配值时的检查 也许我这么认为是因为我不知道readonly字
  • 该组件没有由 uri 标识的资源

    我想创建一个通用数据网格以在我的所有视图 用户控件上使用 这是我的结构 Class Library called Core Class called ViewBase public class ViewBase UserControl pu
  • char* argv[] 在 c/c++ 中如何工作? [复制]

    这个问题在这里已经有答案了 我知道它用于使用命令行中的参数 但我没有得到声明 字符 argv 它是否意味着指向 char 数组的指针 如果是的话为什么没有大小 如果不是动态数组 就不需要有大小吗 我做了一些研究 发现有人说它会衰减为 cha
  • C# Julian 日期解析器

    我在电子表格中有一个单元格 它是 Excel 中的日期对象 但当它来自 C1 的 xls 类时 它会变成双精度型 类似于 2009 年 1 月 7 日的 39820 0 我读到这是儒略日期格式 有人可以告诉我如何在 C 中将其解析回 Dat
  • 未找到 _sqlite3_open 等符号错误

    您好 我收到此错误 Undefined symbols sqlite3 open referenced from main in ccRlWVer o sqliite3 close referenced from main in ccRlW
  • 为什么调试器只显示数组指针中的一个元素?

    首先 我知道new是执行此操作的 C 方法 我只是表明有不止一种方法可以重现此错误 而且两种方法都令人难以置信的令人沮丧 我有两种形式的源文件 我正在尝试调试另一个编程作业 但我并没有寻求帮助 基本上 我正在尝试重新实施set作为一个类 具
  • 获取会议组织者邮件地址 EWS API

    我想使用 EWS API 获取会议组织者的邮件地址 目前 我刚刚获得约会项目的一些属性 我听说你可以设置你想要获取哪些属性 我的代码看起来像这样 CalendarView cview new CalendarView start end c
  • C# amo 获取角色完整

    我正在开发一个 SSAS 项目 其中除其他事项外 我需要获取 C 中表格多维数据集的完整用户列表 目前我让它以这样的方式工作 我可以获得角色 但数据不完整 当我调用 Server Database Roles 为了便于阅读而简化 属性并枚举

随机推荐

  • 如何使用plotlyexpress创建热图动画?

    我有一个方阵列表 M t 其中 t 的范围从 0 到 N 我希望使用plotly express 创建动画热图 每行 列中的条目对应一个列表 a a1 a2 aN 关于动画的情节文档相当稀疏 仅关注散点图和条形图 https plotly
  • 我可以使用 rsp 作为通用寄存器吗?

    有人告诉我如果我使用rsp作为通用寄存器 操作系统可能会在发生中断时将寄存器转储到它指向的位置 从而导致出现问题的行为 这是真的吗 如果不是的话 如果我不需要堆栈 我可以使用rsp作为通用寄存器 编辑 在用户空间中运行 如果发生中断 你不会
  • 如何在 Mongodb 上进行不区分大小写的查询?

    var thename Andrew db collection find name thename 如何查询不区分大小写 我想找到结果 即使 andrew Chris Fulstow 的解决方案可以工作 1 但是 它可能效率不高 特别是当
  • 使用 DBFlow 表和 Stetho 重复“id”列

    我正在使用 DBFlow 作为 ORM 库编写 Android 应用程序 所以 这是我的表格模型之一 Table database Database class public class Language extends BaseModel
  • 在 Python/Pygame 中获取没有焦点的输入?

    我正在为自己创建一个小应用程序 以便能够显示我的键盘输入并在操纵杆布局中显示它们 如下所示 这本身在 Pygame 窗口聚焦时工作得很好 我的问题是 我不能一直聚焦它 事实上它永远不会聚焦 因为无论哪种方式我将使用 OBS 进行流式传输 或
  • Python函数:可选参数计算一次?

    Python教程4 7 1 默认参数值陈述如下 重要警告 默认值仅计算一次 这会有所不同 当默认值是可变对象 例如列表 字典或大多数对象的实例 时 类 例如 以下函数累积传递给它的参数 后续调用 def f a L L append a r
  • 带有 Surefire 的 Maven 拒绝运行单一测试方法?

    我一直在尝试使用 Maven 和 Surefire 插件来运行一些 JUnit 单元测试 按照 Maven 和 Surefire 人员提供的说明进行操作 http maven apache org surefire maven surefi
  • Sqlite3 activerecord :order => "time DESC" 不排序

    导轨 2 3 4 sqlite3 我正在尝试这个 Production find all conditions gt 时间 gt start time utc order gt 时间 DESC 限制 gt 100 The 状况工作完美 但我
  • 使用 GDI 创建 8bpp 位图并将其保存为文件

    我有一个完美工作的代码 可以创建 32bpp 位图 我需要更改它以便创建 8bpp 位图 下面是创建 32bpp 位图 绘制其中的代码 然后创建一个位图文件并将其存储到字节向量中 prepare bitmap BYTE bitmap dat
  • 反应式编程:Spring WebFlux:如何构建微服务调用链?

    Spring Boot应用 a RestController接收以下有效负载 cartoon The Little Mermaid characterNames Ariel Prince Eric Sebastian Flounder 我需
  • 地理定位方法查看用户是否在特定区域

    我正在为葡萄牙一家名为 Olivier 的餐厅开发一个应用程序 目前我正在研究phonegap的地理定位api 我还没有找到解决我的问题的方法 即检查用户位置是否在餐厅内 更具体地说 我希望我的应用程序在用户位于餐厅区域内 通过地理位置 时
  • onsubmit return false 不起作用,表单仍然提交?

    这是代码
  • Java中如何获取系统变量值?

    如何获取存在于中的系统变量值 MyComputer gt Properties gt Advanced gt Environment Variables gt System Variables in Java Edit 我用过System
  • 在分区上合并列中的值

    我选择通过一个例子来提出这个问题 因为我认为它最清楚地说明了我正在尝试做的事情 假设我有下表 member number time 1 2 19 21 1 4 19 24 1 27 19 37 2 4 19 01 2 7 21 56 2 8
  • 如何取消UIView基于块的动画?

    我已经搜索了很多东西和苹果的参考资料 但仍然无法解决我的问题 我拥有的 一个屏幕有 2UIImageViews and 2 UIButton与他们相连 2 kinds of animation 放大然后缩小每张图像 一个接一个 仅一次vie
  • Apple 取消了仅在 Web 应用程序中在 iOS 6 上串流 Shoutcast 和 Icecast 的可能性?

    我刚刚制作了一个可以添加我最喜欢的广播电台的网络应用程序 我很久以前就尝试过 但没有成功 所以我真的很惊讶我的 iPad 1 与 IOS 5 1 1 接受所有类型的流或播放列表 我可以播放 pls m3u mp3 流 shoutcast 直
  • 使用 TimeZone 和 SimpleDateFormat 进行日期解析/格式化会在 DST 切换时给出不同的结果

    我在 Google 和 Stack Overflow 上浏览了多篇关于 TimeZone 和 SimpleDateFormat 的帖子 但仍然不明白我做错了什么 我正在处理一些遗留代码 并且有一个方法 parseDate 它给出了错误的结果
  • 删除括号内的字符串

    再会 我需要一些帮助来删除方括号内的字符串并包括方括号 该字符串如下所示 string Lorem ipsum dolor br Context are found on www example com br some text here
  • 双击多边形时禁用缩放

    我在地图上有一些多边形 当用户双击它们时 我不希望发生缩放 但是 我希望在地图的其他部分启用双击缩放 我有什么办法可以实现这个吗 多谢 观察多边形的 dblclick 事件并在事件发生时调用该事件的 stop 方法 google maps
  • 带浮动的无限 for 循环

    考虑以下代码 for float i 0f i lt int MaxValue i Some code Which is supposed to loop from 0 to int MaxValue 231 1 but it doesn