我目前有一些代码,我必须对双精度向量进行归一化(将每个元素除以总和)。调试时,有时会看到vector中的元素都是0.0。如果我然后取元素的总和,我会得到 0.0 或 4.322644347104e-314#DEN (我最近发现这是一个非规范化的数字)。当总和为 0.0 或非规范化数字时,我想防止对向量进行规范化。我能想到的处理这两种情况的唯一方法是检查总和是否小于'epsilon',其中epsilon 是一个很小的数字(但我不确定制作epsilon 有多小)。
我有两个问题:
- 考虑这些情况的最佳方法是什么?
- 非规范化数字机器的值是否依赖?