处理小数量和准确性

时间:2011-01-25 22:12:03

标签: numbers double floating-accuracy

我有一个程序可以处理很多非常小的数字(朝向Double限制的下端)。

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

我现在的解决方案是在进行任何计算之前将其缩小,然后再将其缩小?

......但它让我思考,我实际上通过这样做获得了更多的“准确性”吗?

思想?

2 个答案:

答案 0 :(得分:0)

你的数字是否真的在10 ^ -308(最小标准化双倍)和10 ^ -324(最小可表示双重,非规范化,即失去精度)之间的区域?如果是这样,那么通过缩放它们确实可以通过在double类型的指数范围的极限范围内工作来获得准确性。

我不得不怀疑:什么样的应用程序处理极小的数字?我知道没有任何需要这样的物理训练。

答案 1 :(得分:0)

double有固定数量的有效数字,另有固定数量的字节表示“power”-part。

事实上,您可能有两个问题:

  1. 关于力量部分:即接近小双打的极限即是。 按比例缩放它们(以2为幂)有助于避免您的数字变得不再具有代表性。

  2. 当你写下“估计”的准确性时,我假设你参考有效位数:这与小数限制无关。从双精度的下限意义上来说,数字非常小,但不是太小,具有与任何“更正常”数字相同的有效位数。 一般来说,对数字的数值精度的关注应该集中在如何计算数字,而不是结果的绝对大小。