在C ++中,(有时)subnormal doubles是有限的,不是nan
也不是零。
如何将它们四舍五入为最接近的非正规双精度表示形式?
例如:std::isnormal(DBL_MIN/2.0) = false
答案 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。)