首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >处理小数字和准确性

处理小数字和准确性
EN

Stack Overflow用户
提问于 2011-01-26 06:12:03
回答 2查看 563关注 0票数 2

我有一个程序,我处理很多非常小的数字(接近双重限制的低端)。

在我的应用程序执行期间,这些数字中的一些逐渐变小,这意味着它们的“估计”不太准确。

我目前的解决方案是在我做任何计算之前先放大它们,然后再缩小它们?

...but这让我思考,通过这样做,我是否真的获得了更多的“准确性”?

有什么想法?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-01-26 06:23:18

你的数字真的在10^-308 (最小的归一化双精度)到10^-324 (最小的可表示双精度,非正规化,即失去精度)之间吗?如果是这样,那么通过放大它们,您确实可以通过绕过double类型的指数范围的限制来获得精度。

不过,我想知道:什么样的应用程序可以处理如此小的数字?据我所知,没有任何一门体育学科需要这样的东西。

票数 0
EN

Stack Overflow用户

发布于 2012-09-06 20:20:21

double的有效位数是固定的,表示“幂”-part的字节数也是固定的。

因此,实际上您可能会遇到两个问题:

  1. 关于力量部分:这就是接近小双打极限的原因。放大它们(2的幂)有助于避免你的数字变得不再representable.
  2. when你写的“估计”的准确性,我假设你指的是有效数字的数量:这与小数字限制无关。一个非常小的数字,但在双精度下限意义上并不太小,它的有效位数与任何“更正常”的数字相同。一般来说,对数字的数值精度的关注应该集中在数字是如何计算的,而不是结果的绝对大小。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4799439

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档