草庐IT

fpclassify

全部标签

c++ - 在 C++ 中检查零或非规范化数字

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