C 是否对浮点常量进行舍入

2024-01-13

关于Go中浮点精度的一个问题 https://stackoverflow.com/questions/22337418/golang-floating-point-precision-float32-vs-float64让我想知道C是如何处理这个问题的。

在 C 中使用以下代码:

float a = 0.1;

Will a具有最接近的 IEEE 754 二进制表示形式:

00111101110011001100110011001101 (Decimal:  0.10000000149011612)

或者只是将其裁剪为:

00111101110011001100110011001100 (Decimal:  0.09999999403953552)

或者它会根据编译器/平台而有所不同吗?


允许实现执行以下任一操作(甚至可以再执行一次):

对于十进制浮点常量,以及当 FLT_RADIX 不是 2 的幂时的十六进制浮点常量,结果是最接近的可表示值,或者是紧邻最接近可表示值的较大或较小的可表示值,在实现定义中选择方式。

(C11,§6.4.4.2/3)

自 C99 以来,我们已经有了十六进制浮点常量,以便您可以精确指定所需的位(假设实现提供二进制浮点:)),因此您可以说,例如:

float a = 0x1.99999Ap-4;

对于 IEEE 754 32 位浮点数:

#include <stdio.h>
int main() {
  float a = 0.1;
  float low  = 0x0.1999999p0;
  float best = 0x0.199999ap0;
  float high = 0x0.199999bp0;
  printf("a is %.6a or %.16f, which is either %.16f, %.16f or %.16f\n",
          a, a, low, best, high);
  return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C 是否对浮点常量进行舍入 的相关文章

  • 如何使 Windows 窗体的关闭按钮不关闭窗体但使其不可见?

    该表单有一个 NotifyIcon 对象 当用户单击 关闭 按钮时 我希望表单不关闭而是变得不可见 然后 如果用户想再次查看该表单 可以双击系统托盘中的图标 如果用户想关闭表单 可以右键单击该图标并选择 关闭 有人可以告诉我如何使关闭按钮不
  • UML类图:抽象方法和属性是这样写的吗?

    当我第一次为一个小型 C 项目创建 uml 类图时 我在属性方面遇到了一些麻烦 最后我只是将属性添加为变量 lt
  • 使闭包捕获的变量变得易失性

    闭包捕获的变量如何与不同线程交互 在下面的示例代码中 我想将totalEvents 声明为易失性的 但C 不允许这样做 是的 我知道这是错误的代码 这只是一个例子 private void WaitFor10Events volatile
  • Newtonsoft JSON PreserveReferences处理自定义等于用法

    我目前在使用 Newtonsoft Json 时遇到一些问题 我想要的很简单 将要序列化的对象与所有属性和子属性进行比较以确保相等 我现在尝试创建自己的 EqualityComparer 但它仅与父对象的属性进行比较 另外 我尝试编写自己的
  • 为什么#pragma optimize("", off)

    我正在审查一个 C MFC 项目 在某些文件的开头有这样一行 pragma optimize off 我知道这会关闭所有以下功能的优化 但这样做的动机通常是什么 我专门使用它来在一组特定代码中获得更好的调试信息 并在优化的情况下编译应用程序
  • C 预处理器库

    我的任务是开发源分析工具C程序 并且我需要在分析本身之前预处理代码 我想知道什么是最好的图书馆 我需要一些重量轻 便于携带的东西 与其推出自己的 为什么不使用cpp这是的一部分gcc suite http gcc gnu org onlin
  • Json.NET - 反序列化接口属性引发错误“类型是接口或抽象类,无法实例化”

    我有一个类 其属性是接口 public class Foo public int Number get set public ISomething Thing get set 尝试反序列化Foo使用 Json NET 的类给我一条错误消息
  • Web API - 访问 DbContext 类中的 HttpContext

    在我的 C Web API 应用程序中 我添加了CreatedDate and CreatedBy所有表中的列 现在 每当在任何表中添加新记录时 我想填充这些列 为此目的我已经覆盖SaveChanges and SaveChangesAsy
  • 使用 System.Text.Json 即时格式化 JSON 流

    我有一个未缩进的 Json 字符串 例如 hash 123 id 456 我想缩进字符串并将其序列化为 JSON 文件 天真地 我可以使用缩进字符串Newtonsoft如下 using Newtonsoft Json Linq JToken
  • 在 ASP.NET Core 3.1 中使用包含“System.Web.HttpContext”的旧项目

    我们有一些用 Net Framework编写的遗留项目 应该由由ASP NET Core3 1编写的API项目使用 问题是这些遗留项目正在使用 System Web HttpContext 您知道它不再存在于 net core 中 现在我们
  • 在数据库中搜索时忽略空文本框

    此代码能够搜索数据并将其加载到DataGridView基于搜索表单文本框中提供的值 如果我将任何文本框留空 则不会有搜索结果 因为 SQL 查询是用 AND 组合的 如何在搜索 从 SQL 查询或 C 代码 时忽略空文本框 private
  • 如何衡量两个字符串之间的相似度? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 给定两个字符串text1 and text2 public SOMEUSABLERETURNTYPE Compare string t
  • Discord.net 无法在 Linux 上运行

    我正在尝试让在 Linux VPS 上运行的 Discord net 中编码的不和谐机器人 我通过单声道运行 但我不断收到此错误 Unhandled Exception System Exception Connection lost at
  • 如何使我的表单标题栏遵循 Windows 深色主题?

    我已经下载了Windows 10更新包括黑暗主题 文件资源管理器等都是深色主题 但是当我创建自己的 C 表单应用程序时 标题栏是亮白色的 如何使我自己的桌面应用程序遵循我在 Windows 中设置的深色主题 你需要调用DwmSetWindo
  • 如何让Gtk+窗口背景透明?

    我想让 Gtk 窗口的背景透明 以便只有窗口中的小部件可见 我找到了一些教程 http mikehearn wordpress com 2006 03 26 gtk windows with alpha channels https web
  • 为什么我收到“找不到编译动态表达式所需的一种或多种类型。”?

    我有一个已更新的项目 NET 3 5 MVC v2 到 NET 4 0 MVC v3 当我尝试使用或设置时编译出现错误 ViewBag Title财产 找不到编译动态表达式所需的一种或多种类型 您是否缺少对 Microsoft CSharp
  • x86 上未对齐的指针

    有人可以提供一个示例 将指针从一种类型转换为另一种类型由于未对齐而失败吗 在评论中这个答案 https stackoverflow com questions 544928 reading integer size bytes from a
  • ASP.NET MVC 6 (ASP.NET 5) 中的 Application_PreSendRequestHeaders 和 Application_BeginRequest

    如何在 ASP NET 5 MVC6 中使用这些方法 在 MVC5 中 我在 Global asax 中使用了它 现在呢 也许是入门班 protected void Application PreSendRequestHeaders obj
  • 使用按位运算符相乘

    我想知道如何使用按位运算符将一系列二进制位相乘 但是 我有兴趣这样做来查找二进制值的十进制小数值 这是我正在尝试做的一个例子 假设 1010010 我想使用每个单独的位 以便将其计算为 1 2 1 0 2 2 1 2 3 0 2 4 虽然我
  • 恢复上传文件控制

    我确实阅读了以下帖子 C 暂停 恢复上传 https stackoverflow com questions 1048330 pause resume upload in c 使用 HTTP 恢复上传 https stackoverflow

随机推荐

  • 抓取域列表的登陆页面[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我有一个相当长的网站列表 我想下载
  • 切片神奇地更新

    我正在尝试编写一个程序来查找二叉树中的所有根到叶路径 其中每个路径的总和等于给定的总和 以下是我想出的代码 package main import fmt type TreeNode struct Val int Left TreeNode
  • 如何在VS中调试appdomain返回值

    我的 C 程序使用多个应用程序域来加载 卸载程序集 我在第二个应用程序域中的程序集返回一个继承 MarshalByRefObject 的对象 我现在的问题是 Visual Studio 告诉我它无法显示有关它的信息 此上下文中不支持获取透明
  • 在没有 Spring Boot 应用程序主类的项目中测试 Spring Data Repository

    我有一个小项目 不包含运行 Spring Boot 应用程序的类 在该课程中 我只有一些配置和一些存储库 我想在小项目中测试这些存储库 为此 我有以下几点 SpringBootTest DataJpaTest public class Ta
  • Vim html.erb 片段? snipMate 需要 vim 提示

    当我在 html erb 文件中时 我没有得到 snipMate 片段 我想要 HTML 和 Ruby 或者只需要 HTML 我该怎么做 我需要写一组片段吗 如果是这样 是否有一种方法可以提取现有的片段而不复制它们 有没有办法告诉vim在看
  • 禁用特定 Go-Gin 路由的请求日志记录

    我有很多路线 从杜松子酒开始gin Default 默认情况下启用所有路由的日志记录和恢复 但只有一条路线 即 health 每 5 秒就会 ping 一次 在不更改大量代码的情况下禁用该路由的请求日志记录的直接方法是什么 func mai
  • Karate DSL Framework 是否具有执行负载测试的能力

    目前 我们已经使用 Karate 框架自动化了所有的 Web 服务 这非常酷 我们有什么方法可以使用这个工具进行负载测试吗 示例 当我注册会员 1000 次时给出 那么平均响应时间应该是2 7毫秒 我是空手道的开发者 很高兴听到这个反馈 谢
  • Atom Shell 中的跨域 Ajax 调用

    我们正在与 Atom Shell 目前称为electron https github com atom electron 将 Web 应用程序包装为桌面应用程序 并且由于 CORS 限制而无法进行跨域 ajax 调用 我们也尝试过nw js
  • 迭代 mat-table Angular 中的数据源

    我在通过 dataSource 进行迭代时遇到问题 其中我有 mat table 的数据 div class my item div span class skuska span class mat subheading 2 element
  • 在服务中使用哪个上下文?

    我想调用其他需要 Context 作为输入参数的类中的方法 但我在服务中有 3 种可能性 getApplicationContext getBaseContext getApplication 用在哪一个ScreenService whic
  • .htaccess URL 重定向

    我怎样才能重定向http domain com blog index php weblog rss 2 0 http domain com blog index php weblog rss 2 0 to http www domain c
  • 如何在使用 Boost C++ 编写的 php Web 应用程序中读取地图(在共享区域中)?

    我在共享区域中使用 C Boost 库编写了一张映射 键 值 void CreateIndexMap shared memory object remove Getsharedmemoryregion managed shared memo
  • Windows Phone 7 TextBlock TextWrapping 在列表框中不受支持

    我有一个列表框定义为
  • Woocommerce 结账页面中的自定义统一费率描述文本

    我在运输区域内设置了两种统一费率运输方式 结帐时这两种运输方式都可用 我想在每个统一费率运输选项下显示文本说明 WooCommerce 中似乎没有任何选项可以执行此操作 我已经尝试过以下代码 但不用说它不起作用 add filter woo
  • 明白ES6中数组的区别了吗?

    所以我有两个数组 const allLanguages ES EN DE const usedLanguages id 1 lang EN 生成新数组的最快方法是什么 这两者之间有什么区别 在老式的 JavaScript 中 你必须在另一个
  • Android 中的图像视图上的文本叠加

    我正在尝试将文本视图覆盖在图像视图上 像这样的东西 有人可以帮我解决代码吗 将TextView和ImageView包裹到FrameLayout中 将TextView放在FrameLayout中ImageView之后 然后 将 FrameLa
  • debounce 不适用于 Angular 中的 keyup 事件

    我有一个text box输入一些文本来搜索记录 我在用data ng model options debounce 1000 with keyup event data ng model options 工作正常 但我想解雇keyup事件之
  • 删除特定列中第一次出现 NaN 后的所有行(pandas)

    我正在尝试使用 pandas 中的 dropna 函数 我想将它用于特定的列 如果所有行都有所有 NaN 值 我只能弄清楚如何使用它来删除 NaN 我有一个数据框 见下文 我想在第一次出现 NaN 后删除所有行specific列 A 列 当
  • AWK:使用正则表达式缩短 if-then-else

    AWK 格式如下 REGEX Action 将执行Action如果当前行匹配REGEX 有没有办法添加一个else子句 如果当前行与正则表达式不匹配 则将执行该子句 而不显式使用 if then else 如下所示 REGEX Action
  • C 是否对浮点常量进行舍入

    关于Go中浮点精度的一个问题 https stackoverflow com questions 22337418 golang floating point precision float32 vs float64让我想知道C是如何处理这