将double舍入到最接近的非次标准表示

时间:2019-12-12 17:50:48

标签: c++ gcc visual-c++ floating-point c++17

在C ++中,(有时)subnormal doubles是有限的,不是nan也不是零。

如何将它们四舍五入为最接近的非正规双精度表示形式?

例如:std::isnormal(DBL_MIN/2.0) = false

1 个答案:

答案 0 :(得分:2)

所有次正规双倍量级都在0到/* step to overwrite WORK.TEMP1 dots with 0 */ DATa TEMP1; SET TEMP1; array a1 _numeric_; do over a1; if a1=. then a1=0; end; run; 之间。如果值小于DBL_MIN,则根据与DBL_MIN的比较将其四舍五入。 (为匹配通常的IEEE-754舍入行为,DBL_MIN/2本身应舍入为0。)