精度和的含义。双类型范围

2024-01-12

首先,请允许我承认我是一名经验丰富的程序员,拥有超过 10 年的编程经验。然而,我在这里问的问题是自从大约十年前我第一次拿起一本关于 C 的书以来一直困扰着我的问题。

下面是一本关于Python的书的摘录,解释了Python的浮动类型。

浮点数使用本机表示 浮点数的双精度(64 位)表示 机器。通常这是 IEEE 754,它提供了大约 17 位精度和 –308 到范围内的指数 308.这与C中的double类型相同。

我一直不明白这句话的意思

“...提供大约 17 位精度和 指数范围为 –308 到 308 ...”

我的直觉在这里误入歧途,因为我可以理解精度的含义,但范围怎么可能与此不同。我的意思是,如果一个浮点数可以表示最多 17 位的值(即最大 1,000,000,000,000,000,00 - 1),那么指数怎么可能是 +308。如果指数为 10,这不是会产生 308 位数字;如果指数为 2,这不是会产生大约 100 位数字吗?

我希望,我能够表达我的困惑。

问候 阿布舍克·瓦伊德


假设我们以两位数的精度写出 1500。这意味着我们足够精确来区分 1500、1600 和 1400,但不够精确,无法区分 1500、1510 或 1490。区分这些数字需要三位数的精度。

即使我写了四位数字,浮点表示也不一定包含所有这些数字。 1500 是 1.5 * 10^3。在十进制浮点表示中,精度为两位数,仅存储数字和指数的前两位,我将其写为 (1.5, 3)。

为什么“真实”数字和占位符零之间存在区别?因为它告诉我们如何精确地表示数字,即由于近似而损失了其价值的哪一部分。我们可以区分 1500 = (1.5, 3) 和 1500+100 = (1.6, 3)。但如果我们增加指数,我们就无法区分 15000 = (1.5, 4) 和 15000+100 = (1.51, 4)。最好的情况是,我们可以将数字近似到 +/- 10% 的范围内,并具有两位小数的精度。无论指数允许多大或多小都是如此。

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

精度和的含义。双类型范围 的相关文章

  • Java - 一次双加法/减法的最大精度损失

    是否有可能确定 即使是粗略地 处理两个数据时的最大精度损失是多少 doublejava中的值 加 减 最糟糕的情况可能是两个数字无法精确表示 然后对它们执行运算 结果得到的值也无法精确表示 最坏的情况是all精度可能会丢失 例如 如果结果大
  • 生成 -x 和 x 之间的随机 Double [重复]

    这个问题在这里已经有答案了 可能的重复 用Java生成一定范围内的随机数 https stackoverflow com questions 363681 generating random number in a range with j
  • 融合乘加和默认舍入模式

    使用 GCC 5 3 可以编译以下代码 O3 fma float mul add float a float b float c return a b c 产生以下程序集 vfmadd132ss xmm1 xmm2 xmm0 ret 我注意
  • `std::sin` 最后一点是错误的

    为了提高效率 我正在将一些程序从 Matlab 移植到 C 两个程序的输出完全相同非常重要 我面临着此操作的不同结果 std sin 0 497418836818383950 0 477158760259608410 C sin 0 497
  • .NET 中小数、浮点和双精度之间的区别?

    有什么区别decimal float and double在 NET 中 什么时候有人会使用其中之一 float C 别名为System Single and double C 别名为System Double are 漂浮的binary点
  • 给定精度的快速双精度数到字符串转换

    我需要以给定的精度将双精度数转换为字符串 String format 3f value or DecimalFormat 可以完成这项工作 但基准测试表明它很慢 甚至Double toString在我的机器上转换 100 万个数字大约需要
  • 在 C# 中以科学记数法显示 IEEE-754 四倍精度 (binary128) 浮点值

    我正在尝试将原始二进制数据从线程上下文转换为人类可读的格式 并且在尝试转换时出现空的情况四精度浮点 http en wikipedia org wiki Quadruple precision floating point format I
  • System.InvalidCastException:“无法将类型为“System.Double”的对象转换为类型为“System.Single”。”

    为什么 我在 obj Add new data 行上收到此错误 这是我的代码 SqlCommand com new SqlCommand sp get a con CommandType CommandType StoredProcedur
  • 从 VB6 和 C# 调用 DLL 给出的双精度结果略有不同

    我在 DLL 中有一个专有库 我没有代码 该库已在 VB6 中使用多年 我正在尝试将VB6代码升级到C 并希望使C 代码完全复制VB6的行为 当从每个环境调用时 我无法使 DLL 中完成的某些计算的双精度结果完全匹配 在 VB6 中 我有类
  • 为什么引用某些导出的 const 变量的某些 const 变量的值为 0?

    考虑以下 我有两个导出常量 如下所示 somefile h extern const double cMyConstDouble extern const double cMyConstDouble2 and somefile cpp co
  • float 和 double 精度相关的概念

    为什么精度float小数点后最多 6 位 精度double小数点后最多15位 任何人都可以给一个数学解释 of it 说一下精度float or double是一些小数位数是草率的术语 float and double通常使用 IEEE 7
  • Double.toString 对于大值没有指数表示法

    在我的 JSF2 应用程序中 我希望显示双精度值而不使用指数表示法 是否可以 我无法使用NumberFormat or DecimalFormat因为它将把我的数据类型更改为字符串 我从Java文档中了解到 如果我的double值小于10
  • 如何在 C++ 中将 CString 转换为 double?

    我如何转换CString to a double在 C 中 Unicode 支持也很好 Thanks A CString可以转换为LPCTSTR 这基本上是一个const char const wchar t 在 Unicode 版本中 知
  • 将双精度转换为二进制表示形式?

    我尝试将双精度数转换为其二进制表示形式 但使用此Long toBinaryString Double doubleToRawLongBits d 没有帮助 因为我有大量数字 Long 无法存储它们 即2 900 Long toBinaryS
  • 将浮点型转换为双精度型

    我正在尝试转换Single to Double同时保持原来的价值 我找到了以下方法 Single f 5 2F Double d1 f 5 19999980926514 Double d2 Double Parse f ToString 5
  • C++长双精度打印所有数字

    关于我的问题 我在这里看到了一篇文章 但不明白 因为我是 C 新手 我编写了一个小脚本 它从用户那里获取一个数字 然后脚本打印出输入数字的阶乘 一旦我输入了像 30 这样的更大的数字 脚本就不会打印出所有的数字 输出就像 2 6525285
  • 处理小数字和准确性

    我有一个程序 可以处理很多非常小的数字 接近双极限的下限 在我的应用程序执行期间 其中一些数字逐渐变小 这意味着它们的 估计 不太准确 我目前的解决方案是在进行任何计算之前将它们放大 然后再次缩小 但这让我思考 这样做是否真的获得了更多的
  • IFormatProvider 从双精度数到字符串的科学转换 - 位数

    我在从双精度型到字符串型的转换时遇到问题 我想转换 双精度值 0 0772486324655191 字符串值 0 0772486324655191 如果小数点后的长度大于 16 位 我希望这样 双精度值 0 0006350024483249
  • Kotlin 中 Float 和 Double 类型的最小值和最大值

    找出确切的内容很简单min and max值Int and LongKotlin 中的整数 有符号 32 位整数 Int MIN VALUE 2147483648 Int MAX VALUE 2147483647 有符号 64 位整数 Lo
  • 机器Epsilon精度差异

    我正在尝试计算 C 中双精度数和浮点数的机器 epsilon 值 作为学校作业的一部分 我在 Windows 7 64 位中使用 Cygwin 代码如下 include

随机推荐

  • git-svn 迁移致命:不是有效的 SHA1 update-ref refs/heads/master refs/remotes/trunk:命令返回错误:128

    尝试将大型但线性的 svn 存储库迁移到 git svn 存储库没有标准布局 主干 分支 标签 只有主干的一个目录 Ubuntu 12 4 LTS git 1 7 9 5 git svn clone https coawstmodel so
  • 将 COM+ 应用程序从 Windows 2003 移植到 Windows 2008 Server 时出现的问题

    我们正在将应用程序从 Windows Server 2003 迁移到 Windows Server 2008 R2 我在迁移方面面临一些问题 我在Windows Server 2008 R2中部署了许多COM 组件 32位 和DCOM组件
  • 在Android中限制EditText文本长度的最佳方法是什么

    限制文本长度的最佳方法是什么EditText在安卓中 有没有办法通过 xml 来做到这一点 文档 http developer android com reference android widget TextView html attr
  • 如何将 npm 脚本转换为 grunt 任务?

    我的 NodeJS 有以下脚本 scripts start grunt test node debug harmony node modules grunt cli bin grunt test 我正在运行节点 v0 11 13 所以我需要
  • 如何对两个表进行求和?

    我有两个表 我需要对它们进行求和 表 1 包含时间段 即年底的年份和季度 即4 8 12ETC 表 2 包含全年各季度的交易情况3 6 7 etc 我需要表 3 来汇总一年中的所有交易 以便获得年底的累积头寸 以下是一些示例代码 用于解释数
  • 部署到 us-central1 以外的区域时,客户端可调用 Firebase 函数失败

    客户端可调用 Firebase 函数失败并显示 错误 无法读取数据 因为格式不正确 当部署到美国中部1以外的地区时 尝试过欧洲 西部和亚洲 服务器代码 exports getName functions region europe west
  • WCF - 如何编写仅向特定客户端发布的发布者\订阅者服务?

    我正在以发布 订阅模式编写 WCF 服务 当有人发布活动时 我不想立即将其发送给所有客户 我希望能够为每个客户检查是否需要通知该客户该发布 基本上 这将通过访问数据库并检查该客户端是否已使用这些参数订阅该特定事件来完成 无法提前完成 只需要
  • Spidev 不使用 ioctl 同时写入/读取

    我希望找到一些帮助 即使这个问题可能更多地与硬件相关而不是与软件相关 我们将会看到 我正在开发基于 Freescales P1021 处理器 ppc e500v2 内核 的定制板 将连接外部 PCB 并可通过 SPI 进行配置 该外部 PC
  • CSS 宽度属性不受尊重

    我正在 Joomla 中向一个具有 virtualmart 的网站添加一些格式化的 div 标签 到目前为止我在这方面已经取得了成功 我修改了我们使用的模板 以包含一个 css 文件 article css 其中包含我的自定义内容 我所拥有
  • 正则表达式匹配字符串之前且最接近的第一次出现

    我正在尝试使用正则表达式来获取最接近名称 Daily 的 ID 号 不过 我遇到了困难 当我尝试正则表达式模式时 我得到以下结果 从第一个 ID 出现到选择 每日 的所有内容 所有 ID 都是单独选择的 我可以指定匹配编号来获取正确的 ID
  • RX - 重新抛出包含方法中的错误

    我需要翻译 RX 流中的错误 IObservable 进入包含流订阅的方法中的异常 因为这个问题https github com aspnet SignalR pull 1331 https github com aspnet Signal
  • Kubernetes 负载均衡

    我正在研究 Kubernetes 不考虑特定的云提供商 目前还不清楚最通用的服务 不是负载均衡器类型的服务 是否充当单个微服务的各个副本之间的内部负载均衡器 So 如何在副本之间实现内部负载均衡而不将微服务暴露给外部流量 您可以使用 pod
  • 在 JMeter 中绘制自定义变量的图表

    我有一个简单的 Java Request 采样器 即 AbstractJavaSamplerClient 如何从此采样器生成自定义变量并绘制它们的图表 最好使用开箱即用的图形侦听器 目前我只能轻松绘制采样时间图 将你的 var 放入 JMe
  • 可以画一条弯弯曲曲的线吗?

    如果我想画一条水平线 我会这样做 div div 如果我想画一条垂直线 我会这样做 line width 1px height 100px background color 000 div div 曲线比较棘手 但可以使用border ra
  • 如何创建持久化的AlarmManager

    编辑 根据 CommonsWare 的回答澄清了问题 我们通过 AlarmManager 安排一个警报每 60 秒触发一次 当我们的应用程序被终止时 我们的警报似乎不再执行 有没有办法让这些警报持续存在 即使应用程序被手动或被系统终止 这对
  • 我可以让 HttpWebRequest 包含 Windows 凭据而不等待 401 质询吗?

    我的应用程序与需要身份验证的内部 Web API 进行通信 当我发送请求时 我收到了预期的 401 质询 握手发生 经过身份验证的请求被重新发送 一切都正常进行 但是 我know需要授权 为什么我必须等待挑战 我可以强制请求发送凭据firs
  • 如何为给定字符串输入集合[重复]

    这个问题在这里已经有答案了 可能的重复 如何获得子集所有可能的组合 https stackoverflow com questions 13765699 how can i obtain all the possible combinati
  • 在 PyQt 中使用 pyttsx

    我正在 pyqt 中为我的聊天机器人制作 Gui 但我在这方面的代码中遇到了一些问题 def init self super Window self init self setGeometry 50 50 500 300 self setW
  • 如何在 Python 3.7 中向 multiprocessing.connection.Client(..) 添加超时?

    我正在运行两个Python 程序 程序 A 通过以下方式连接到程序 B多重处理 module Connection code in program A import multiprocessing import multiprocessin
  • 精度和的含义。双类型范围

    首先 请允许我承认我是一名经验丰富的程序员 拥有超过 10 年的编程经验 然而 我在这里问的问题是自从大约十年前我第一次拿起一本关于 C 的书以来一直困扰着我的问题 下面是一本关于Python的书的摘录 解释了Python的浮动类型 浮点数