表示任何双精度值所需的最大字符长度是多少?

2023-12-02

当我将无符号 8 位 int 转换为字符串时,我知道结果始终最多为 3 个字符(对于 255),而对于有符号 8 位 int,我们需要 4 个字符,例如“-128”。

现在我真正想知道的是浮点值也是一样的。将任何“双精度”或“浮点”值表示为字符串所需的最大字符数是多少?

假设常规 C/C++ 双精度 (IEEE 754) 和正常十进制扩展(即无 %e printf 格式)。

我什至不确定真正的小数字(即 0.234234)是否会比真正的大数字(代表整数的双精度数)长?


标准标头<float.h>在 C 语言中,或者<cfloat>在 C++ 中,包含几个与浮点类型的范围和其他度量有关的常量。其中之一是DBL_MAX_10_EXP,代表所有所需的最大 10 次方指数double价值观。自从1eN needs N+1表示的数字,并且可能还有负号,那么答案是

int max_digits = DBL_MAX_10_EXP + 2;

这假设指数大于表示最大可能尾数值所需的位数;否则,还会有一个小数点,后面跟着更多的数字。

更正

最长的数字实际上是可表示的最小负数:它需要足够的数字来覆盖指数和尾数。这个值是-pow(2, DBL_MIN_EXP - DBL_MANT_DIG), where DBL_MIN_EXP是负数。很容易看出(并通过归纳法证明)-pow(2,-N) needs 3+N非科学十进制表示的字符 ("-0.", 其次是N数字)。所以答案是

int max_digits = 3 + DBL_MANT_DIG - DBL_MIN_EXP

对于 64 位 IEEE double,我们有

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

表示任何双精度值所需的最大字符长度是多少? 的相关文章

  • 为什么我在 ECMAScript / ActionScript 3 中看到不精确的浮点结果?

    大家好 让我们直接跳到代码示例 以展示 ECMAScript JavaScript AS3 如何无法正确执行简单的数学运算 AS3 对 Number 类使用 IEEE 754 双精度浮点数 据说与JavaScript 中使用的 trace
  • VB.NET 相当于 C# 属性简写吗?

    是否有与 C 等效的 VB NET public string FirstName get set 我知道你能做到 Public Property name As String Get Return name ToString End Ge
  • 启动时出现 OData v4 错误:找不到段“Whatever”的资源

    我正在构建新的 v4 服务 一切进展顺利 直到我为新模型 实体添加了新控制器 并在启动站点进行测试运行时收到此错误 控制器似乎编码正确 就像其他控制器一样 控制器 CustomersOData 中的操作 GetFeed 上的路径模板 Cus
  • 如何在 C# 中从 UNIX 纪元时间转换并考虑夏令时?

    我有一个从 unix 纪元时间转换为 NET DateTime 值的函数 public static DateTime FromUnixEpochTime double unixTime DateTime d new DateTime 19
  • 在新的浏览器进程中打开 URL

    我需要在新的浏览器进程中打开 URL 当浏览器进程退出时我需要收到通知 我当前使用的代码如下 Process browser new Process browser EnableRaisingEvents true browser Star
  • 在 Unity 进程和另一个 C# 进程之间进行本地 IPC 的最快方法 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我希望每秒大约 30 次从 C 应用程序向我的 Unity 应用程序传送大量数据 由于 Unity 不支持映射内存和管道 我考虑了 t
  • 单元测试一起运行时失败,单独运行时通过

    所以我的单元测试遇到了一些问题 我不能只是将它们复制并粘贴到这里 但我会尽力而为 问题似乎是 如果我一项一项地运行测试 一切都会按预期进行 但如果我告诉它一起运行测试 则 1 5 将通过 TestMethod public void Obj
  • 获取 WPF 控件的所有附加事件处理程序

    我正在开发一个应用程序 在其中动态分配按钮的事件 现在的问题是 我希望获取按钮单击事件的所有事件 因为我希望删除以前的处理程序 我尝试将事件处理程序设置为 null 如下所示 Button Click null 但是我收到了一个无法分配 n
  • 使用 JNI 从 Java 代码中检索 String 值的内存泄漏

    我使用 GetStringUTFChars 从使用 JNI 的 java 代码中检索字符串的值 并使用 ReleaseStringUTFChars 释放该字符串 当代码在 JRE 1 4 上运行时 不会出现内存泄漏 但如果相同的代码在 JR
  • 在一个字节中存储 4 个不同的值

    我有一个任务要做 但我不知道从哪里开始 我不期待也绝对不想要代码中的答案 我想要一些关于该怎么做的指导 因为我感到有点失落 将变量打包和解包到一个字节中 您需要在一个字节中存储 4 个不同的值 这些值为 NAME RANGE BITS en
  • 如何将整数转换为 void 指针?

    在 C 中使用线程时 我面临警告 警告 从不同大小的整数转换为指针 代码如下 include
  • 如何在 Blackberry Cascades 中显示具有特定号码的电话板

    我正在使用带有 C QT 和 QML 的 Blackberry Cascades 10 Beta 3 SDK 以及 Blackberry 10 Dev Alpha Simulator 和 QNX Momentics IDE 并且我正在尝试实
  • 如何使用 Mongodb C# 驱动程序连接多个集合

    我需要将 3 个集合与多个集合合并在一起 lookup我在 C 驱动程序中尝试过 它允许我 lookup用户采集但无法执行秒 lookup用于设置集合 有人可以帮忙吗 db Transactions aggregate lookup fro
  • 将 log4net 与 Autofac 结合使用

    我正在尝试将 log4net 与 Autofac 一起使用 我粘贴了这段代码http autofac readthedocs org en latest examples log4net html http autofac readthed
  • 等待线程完成

    private void button1 Click object sender EventArgs e for int i 0 i lt 15 i Thread nova new Thread Method nova Start list
  • HttpWebRequest 在第二次调用时超时

    为什么以下代码在第二次 及后续 运行时超时 代码挂在 using Stream objStream request GetResponse GetResponseStream 然后引发 WebException 表示请求已超时 我已经尝试过
  • 有人可以提供一个使用 Amazon Web Services 的 itemsearch 的 C# 示例吗

    我正在尝试使用 Amazon Web Services 查询艺术家和标题信息并接收回专辑封面 使用 C 我找不到任何与此接近的示例 所有在线示例都已过时 并且不适用于 AWS 的较新版本 有一个开源项目CodePlex http www c
  • C++ 密码屏蔽

    我正在编写一个代码来接收密码输入 下面是我的代码 程序运行良好 但问题是除了数字和字母字符之外的其他键也被读取 例如删除 插入等 我知道如何避免它吗 特q string pw char c while c 13 Loop until Ent
  • 编译时“strlen()”有效吗?

    有时需要将字符串的长度与常量进行比较 例如 if line length gt 2 Do something 但我试图避免在代码中使用 魔法 常量 通常我使用这样的代码 if line length gt strlen Do somethi
  • 在客户端系统中安装后桌面应用程序无法打开

    我目前正在使用 Visual Studio 2017 和 4 6 1 net 框架 我为桌面应用程序创建了安装文件 安装程序在我的系统中完美安装并运行 问题是安装程序在其他计算机上成功安装 但应用程序无法打开 edit 在客户端系统中下载了

随机推荐

  • 批处理文件 - 下载最新的 FTP 文件夹

    我正在尝试从 FTP 服务器下载最新的文件夹 该文件夹包含多个文件夹 其中包含多个 CSV 文件 我遇到的问题是每天都会创建文件夹 每次运行脚本时我只希望它下载该位置的最新文件夹 我不知道如何指定这一点 甚至不知道如何使用批处理文件从 FT
  • 添加更复杂的子类公理

    我偶然发现了另一个问题 I want to achieve something similar to this 我想使用 RDFList 来执行此操作 将必要的属性添加到列表中 然后调用方法 createUnionClass 或 creat
  • CImg 与 jpeglib

    我试图让 CImg 与 Visual Studio 2017 和 jpeg 9b 一起使用 但由于某种原因它不能使用 Code define cimg use jpeg include CImg CImg h using namespace
  • 如何使用 Power BI DAX 从移动表计算每天的库存?

    我有一张库存变动表 每个库存项目都有一个唯一的 ID 并且它们会随着时间的推移更改状态 假设状态 A B C 和 D 但并不总是按此顺序 ID的每次状态变化都是表中的一条新记录 并带有状态变化的时间戳 我的目标是使用 Power BI DA
  • AVCaptureSession 仅获取视频缓冲区

    我试图从 iPhone 摄像头捕获视频和音频 并由 avassetwriter 作为视频文件输出 但输出视频文件仅包含带有音频的第一帧 我检查了 AVCaptureSession 委托方法 void captureOutput AVCapt
  • 导出机器学习模型

    我正在创建一个机器学习算法并想将其导出 假设我正在使用 scikit learn 库和随机森林算法 modelC RandomForestClassifier n estimators 30 m modelC fit trainvec yv
  • 如何从 javascript 函数调用方法后面的代码?

    我有一个 javascript 函数 用于 aspx 页面中的 HTML img 点击事件 其代码隐藏页面中还有一个服务器方法 现在我想仅当用户单击 HTML img 时才从 javascript 函数调用服务器方法而不带任何参数 C 代码
  • 隐藏 ViewController 后实例化按钮不起作用

    我刚刚发现这个非常奇怪的问题 我有这个button这是触发这个function objc func vergessenTapped let forgotPasswordVC self storyboard instantiateViewCo
  • 查找具有 n 个元素的表的最佳列和行大小以及其比例的给定范围

    我正在寻找一种从 n 个元素创建表格的最佳方法 以便理想情况下没有空单元格 但同时表格尺寸列 行的比例变得尽可能接近 1 当然 如果 n 是平方数 那么就很容易 cols rows sqrt n 如果 n 是素数 那么很明显会有空单元格 所
  • 在 Github 操作中获取修改后的文件

    我的存储库中有 2 个 Github Actions 工作流程 其中一个步骤需要获取 PR 中已修改的所有文件 删除的文件除外 我在第一个中使用这个 on pull request branches main jobs get files
  • Java 方法有排序约定吗? [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我有一个大型类 大约 40 个方法 它是我将作为课程作业提交的包的一部分 目前 这些方法在公用 私有等方面相当混乱 我想以合理的方式对它们进行排序 有这样做的标准方法吗 例如 通
  • 带有动态类名的 PHP 命名空间

    想知道其他人在使用 PHP 5 3 命名空间类的新功能时是否遇到过这个问题 我正在生成一个动态类调用 利用一个单独的类来定义应用程序中的用户类型 基本上 类定义器采用类型的整数表示形式并解释它们 返回一个包含类名的字符串 该类名将被称为该用
  • 将 git 子模块中的更改推送到主模块,但不推送到子模块

    我有一个 git 项目 A 它使用来自 Github 的子模块 B 我无法推送到 Github 项目 B 因为它不是我的 我想在B中做一个小的改变 不推送到远程B 因为我无法推送 但应该推送到A 所以当有人使用A时 他应该能够看到我的更改
  • Python递归函数错误:“超出最大递归深度”[重复]

    这个问题在这里已经有答案了 我使用以下代码解决了 Project Euler 的问题 10 该代码通过暴力破解 def isPrime n for x in range 2 int n 0 5 1 if n x 0 return False
  • “缩进中制表符和空格的使用不一致”[重复]

    这个问题在这里已经有答案了 我正在尝试在 Python 3 2 中创建一个应用程序 并且一直使用制表符进行缩进 但即使是编辑器也会将其中一些更改为空格 然后当我尝试运行时打印出 缩进中制表符和空格的使用不一致 该程序 如何将空格改为制表符
  • 如何在spring data @Query中使用属性

    我无法设法将 application yml 中的属性注入到 spring data Query 中 以下结果会导致 EL1008E 错误 public interface MyRepository extends JpaRepositor
  • 如何通过PHP和Linux使用pdo连接mssql?

    我正在尝试使用以下代码建立新的 PDO 连接 new PDO mssql driver Server serverName Database databaseName username password array PDO ATTR PER
  • 组合框问题:无法绑定到新值成员

    我创建了一个作为用户控件的组合框 它实际上由标签 组合框和文本框组成 我正在尝试将数据集绑定到组合框数据源 但我不断收到有关 ValueMember Display 成员的错误消息 Cannot bind to the new displa
  • 如何在屏幕底部添加工具栏?

    我是新来的 我需要你的帮助 因为我不知道一些事情 例如 我为我的应用程序放置了一个工具栏 而不是在屏幕顶部放置操作栏 现在我想在底部放置一个工具栏 那么我该怎么做呢 工具栏是正确的方式 并且它兼容android 4 0 谢谢您的回答 编辑
  • 表示任何双精度值所需的最大字符长度是多少?

    当我将无符号 8 位 int 转换为字符串时 我知道结果始终最多为 3 个字符 对于 255 而对于有符号 8 位 int 我们需要 4 个字符 例如 128 现在我真正想知道的是浮点值也是一样的 将任何 双精度 或 浮点 值表示为字符串所