IEEE“双精度”的精确文本表示

2023-11-24

我需要以人类可读的文本形式表示 IEEE 754-1985 双(64 位)浮点数,条件是文本形式可以解析回exactly相同的(按位)数字。

如果不打印原始字节,这是否可能/实用? 如果是,那么执行此操作的代码将不胜感激。


最佳选择:使用 C99 十六进制浮点格式:

printf("%a", someDouble);

以这种方式生成的字符串可以转换回double与C99strtod( )功能,并且还与scanf( )功能。其他几种语言也支持这种格式。一些例子:

decimal number    %a format     meaning
--------------------------------------------
2.0               0x1.0p1       1.0 * 2^1
0.75              0x1.8p-1      1.5 * 2^-1

十六进制格式的优点是所有表示形式都是exact。因此,即使有人更改了执行转换的舍入模式,将字符串转换回浮点数也始终会给出原始数字。对于不精确的格式来说,情况并非如此。

如果您出于某种原因不想使用十六进制格式,并且愿意假设舍入模式将始终舍入到最接近的值(默认),那么您可以将数据格式化为至少为 17 的小数有效数字。如果您有一个正确的舍入转换例程(大多数(不是所有)平台都有),这将保证您可以进行从双精度到字符串的往返转换,而不会损失任何准确性。

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

IEEE“双精度”的精确文本表示 的相关文章

  • JavaScript 中的整数

    MDN https developer mozilla org en JavaScript A re introduction to JavaScript Numbers states JavaScript 中的数字是 双精度 64 位格式
  • numpy float:算术运算比内置函数慢 10 倍?

    我对以下代码的计时非常奇怪 import numpy as np s 0 for i in range 10000000 s np float64 1 replace with np float32 and built in float 内
  • 浮点转换和性能

    我知道在浮点数和整数之间进行转换时可能会出现错误 但是性能如何 请忽略准确性问题 一般来说 如果我对不同算术类型的操作数 即不同的浮点类型 例如 float and double 和浮点 整数类型组合 例如float and int 是否存
  • 在 Go 中获取机器 epsilon 的最简单方法

    在 Go 中获取机器 epsilon 的最简单方法是什么 浮点数的其他方面 例如精度 最小指数 最大指数 摆动等 又如何呢 我意识到有一个 math const 包 其中包含不同浮点类型的最大值和最小值 http golang org sr
  • 这是一个有效的浮点数比较,它占了一定的小数位数吗?

    我正在编写一个扩展方法来使用一组小数点 有效数字 来比较两个浮点数 以确定它们是否相等而不是容差或百分比差异 浏览有关浮动比较的其他问题 我看到了复杂的实现 我是否过于简单化了或者这是否有效
  • 单元测试(有时)会因为浮点不精确而失败

    我有课Vector代表 3 维空间中的一个点 这个向量有一个方法normalize self length 1 将矢量缩小 放大为length vec normalize length length 该方法的单元测试有时由于浮点数的不精确性
  • 测试由于浮点限制而导致的舍入误差

    我最近了解到浮点的主要限制之一 事实上 某些数字无法以二进制正确表示 因此可能给出的答案对于您的目的来说不够准确 知道round 2 675 2 and round 2 665 2 两者相等2 67我尝试编写一些代码来给出具有此属性的数字列
  • 在Java中将浮点数组写入文件

    我正在读取 NetCDF 文件 我想将每个数组作为浮点数组读取 然后将浮点数组写入新文件 如果我读取浮点数组 然后迭代数组中的每个元素 使用 DataOutputStream 我可以使其工作 但这非常非常慢 我的 NetCDF 文件超过 1
  • 在 Linux 上将 libquadmath 与 C++ 链接

    我有一个示例代码 include
  • 在 Python 中比较浮点数是否几乎相等的最佳方法是什么?

    众所周知 由于舍入和精度问题 比较浮点数是否相等有点繁琐 例如 比较浮点数 2012 年版 https randomascii wordpress com 2012 02 25 comparing floating point number
  • 从 std::round 转换为 int 是否安全?

    我有一个问题标准 圆形 http www cplusplus com reference cmath round 带签名 double round double x 假设我有这个代码 int i std round 0 9 在这种情况下 s
  • Python 中的舍入浮点问题

    我遇到了 np round np around 的问题 它没有正确舍入 我无法包含代码 因为当我手动设置值 而不是使用我的数据 时 返回有效 但这是输出 In 177 a Out 177 0 0099999998 In 178 np rou
  • 使用浮点/双除法比较可约分数

    假设我有两个分数 a b 和 c d 其中 a b c d 都是大于 0 的整数 使用以下函数检查它们的相等性是否安全 bool are equal fractions int a int b int c int d return stat
  • 什么是浮点推测以及它与编译器的浮点模型有何不同

    英特尔 C 编译器提供两个控制浮点的选项 fp 推测 快速 安全 严格 关闭 fp model 精确 快速 严格和源 双 扩展 我想我明白 fp model 的作用 但什么是 fp 推测以及它与 fp 模型有何关系 我还没有找到任何解释这一
  • C语言中如何比较float变量和double变量?

    float num1 1 if num1 1 printf Yes it is equal n else printf No it is not equal n 输出 gt 是的 它是相等的 whereas float num1 1 2 i
  • 在 Swift 中将半精度浮点数(字节)转换为浮点数

    我希望能够从二进制文件中读取半浮点数并将它们转换为 Swift 中的浮点数 我查看了来自其他语言 例如 Java 和 C 的几种转换 但是我无法获得与半浮点相对应的正确值 如果有人可以帮助我实施 我将不胜感激 从 Float 到 Half
  • MySQL 存储浮点数

    我正在尝试保存这么长的浮点数 13 00386644742523 它基本上是 Lat 和 Lng 值 当我将它保存在数据库中时 它被存储为 13 0039 您应该明确使用精度并且类型应该是DECIMAL NOT FLOAT因为小数点后的每一
  • 如何指定 set precision 舍入

    当流到 std 输出时 我可以指定 set precision 对双精度值进行舍入吗 ofile lt lt std setprecision 12 lt lt total run time TIME lt lt n Output 0 75
  • MySQL如何进行浮点加法的数学计算?

    我测试过SELECT 0 1 0 2 用MySQL MariaDB 查询 它返回了正确的答案 MariaDB none gt SELECT 0 1 0 2 0 1 0 2 0 3 1 row in set 0 000 sec 在大多数编程语
  • 为什么“dtoa.c”包含这么多代码?

    我将是第一个承认我对低级编程的整体知识有点稀疏的人 我理解许多核心概念 但我不经常使用它们 话虽这么说 我对需要多少代码感到非常惊讶dtoa c http www netlib org fp dtoa c 在过去的几个月里 我一直致力于用

随机推荐

  • 接受来自 scanf 函数的任意数量的输入

    我正在尝试使用读取未知数量的输入scanf功能 int a 100 int i 0 while scanf d a i n i Next part of the code 但是这个函数不会进入代码的下一部分 似乎有一个无限的 while 循
  • Spring - 计划任务 - 优雅关机

    我有一个 Spring Boot 应用程序 其中有一个 Bean 以大约 1 分钟的间隔运行计划任务 并且该 Bean 有一个 PreDestroy方法 是否有解决方案允许当前正在执行的任务在生命周期到达预销毁阶段之前完成 或者至少给定一些
  • 如何管理 AngularJS 中加载指令模板的 404 错误

    在 AngularJS 指令中templateUrl参数是动态定义的 templates content id html 我不想建立规则来检查是否content id值有效并将其管理为 404 错误 即如果模板不存在 服务器在加载模板时返回
  • 如何区分InputBox取消和确定按钮?

    快速提问 我正在使用一个Microsoft VisualBasic Interaction InputBox在我的 C 代码中允许用户将网站添加到列表中 但我不希望他们输入空字符串 因此我会弹出错误窗口 以防发生这种情况 但是 如果用户按
  • 如何删除向量的每个第三个元素?

    我有以下向量 myList c 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 如何删除每个第三个元素 不是这样的 myList myList 3 myList myList 6 我需要以下输出 1 2 4 5 7
  • 无法在AWS Lambda函数上使用ES6;如何在 Lambda 中导入 ES6 模块

    我有一个图书馆foo这是用 ES6 编写的 import export并在打字稿中 我有一个应用程序bar它使用foo bar也是用导出和 Typescript 编写的 我想得到bar在 AWS Lambda 上运行 据我所知 我不能使用i
  • =+ Python 运算符语法正确

    我无意中写道 total acc accuracy 代替 total acc accuracy 我在网上搜索没有找到anything 那么发生了什么 为什么 Python 认为我正在输入的内容是什么意思 Computers trust us
  • 从 python BeautifulSoup 的输出中删除新行 '\n'

    我正在使用 python Beautiful soup 来获取以下内容 div class path a href abc a a href def a a href ghi a div 我的代码如下 html doc div class
  • 使用 Google-Maps-iOS-SDK (1.8.1) 时架构 armv7 的未定义符号

    我正在尝试添加使用 cocoapods 0 33 1 的 Google Maps iOS SDK 1 8 1 部署目标版本 iOS 7 0 我添加了这个 Pod pod Google Maps iOS SDK gt 1 8 正确下载并安装了
  • 如何在没有 Storyboard 的情况下在 UITableViewRowAction 中自定义字体和颜色

    我有经典的 TableView 如果您滑动并单击按钮 您可以删除项目 我知道如何在单元格上设置自定义背景 但我找不到如何为其设置自定义字体和颜色 谢谢你的帮助 func tableView tableView UITableView edi
  • java 中的 Servlet - getWriter() 和 getOutputStream()

    为什么在一个实例上ServletResponse both getWriter and getOutputStream 不能被调用吗 一个设计决定 Writer 和 OutputStream 都维护自己的缓冲区 如果您分别创建一个 那么它们
  • 从 ArrayList 创建格式化字符串

    考虑以下代码 ArrayList
  • Unity 的 Mathf.PingPong 实际上是做什么的?

    Unity 文档用于数学乒乓球 says 乒乓球的价值t 因此它永远不会大于length并且永远不会小于0 我知道它正在 0 到 0 之间旋转一个值length 我不明白的是价值是什么t它与 PingPong 的运作方式有何关系 如果我设置
  • 枚举与架构不匹配:jaxb 或 xsd 有问题吗?

    我正在尝试使用 JAXB 来解组这个文件转换为 Java 对象 我知道 J6 中的 SAX 有一个问题 拒绝 maxOccurs 行 我已将其更改为unbounded 然而 当我xjc它 它没有创建我需要的所有类和枚举 例如 应该有一个ed
  • 命令行 perl 脚本中的进度条

    我正在尝试在命令提示符中以 形式打印进度 但它无法正常工作 我想将进度打印为 Status 10 Completed 当 20 完成时 它将显示状态 20 已完成 在同一个地方而不是在新行中 请你帮助我好吗 Code count per c
  • DataTables 插件 - 在 tfoot 标签下方显示滚动条?

    我使用 jQuery DataTables 插件 scrollX true用于水平滚动 为什么上面会出现滚动条tfoot标签 如何让它出现在页脚下方 var table example DataTable scrollX true scro
  • Django 表单集分页

    我有一个模型表单集 我想使用 Django 的 Paginator 一次显示 10 个表单 但不能像这样完成paginator Paginator formset 10 如果有办法的话 正确的方法是什么 这是我发现的问题解决方案的通用示例
  • F#:从 seq 中删除重复项很慢

    我正在尝试编写一个函数 根据给定的相等函数确定 从seq lt a gt 但有一个转折 我需要last从一系列重复项中进行复制 使其进入结果序列 例如 如果我有一个序列 a 1 b 2 b 3 b 4 c 5 我正在使用fun x1 y1
  • Java(Android)中的静态类——使用或不使用

    最近我开始使用 Java 进行 Android 开发 我的想法是创建一个静态类 它将在开始时加载大量内容并在应用程序的整个生命周期中存储结果 我一直在阅读很多如何在活动之间共享对象的文章 我认为最好的方法是创建一个静态类 你怎么认为 我应该
  • IEEE“双精度”的精确文本表示

    我需要以人类可读的文本形式表示 IEEE 754 1985 双 64 位 浮点数 条件是文本形式可以解析回exactly相同的 按位 数字 如果不打印原始字节 这是否可能 实用 如果是 那么执行此操作的代码将不胜感激 最佳选择 使用 C99