static inline void round_to_zero(volatile float *f)
{
*f += 1e-18;
*f -= 1e-18;
}
我指的是除了加1e-18并再次减去之外,我理解这一点。但我不明白它对传递给它的浮点数会产生什么影响。我试图理解它的原因是在某些使用此函数的代码中使用了双精度浮点数(我已将其从浮点数转换)。这是音频代码,上述函数来自于此库:
https://github.com/swh/lv2/blob/master/include/ladspa-util.h
我想知道它是否可以像现在这样在双精度浮点数上运行,或者需要修改以适应双精度浮点数的额外精度。我怀疑这会削减数据的最后几位,如果它们存在于浮点数中,则从浮点数中消除它们,尽管我不太明白如何做到这一点。但是我想象如果是这样,我将需要更改指数以适应双精度浮点数。
TIA,Pete
float
的非规格化数比那还要小。 - ouah