c – 如何处理浮点下溢?
发布时间:2020-12-16 05:05:26 所属栏目:百科 来源:网络整理
导读:我正在尝试理解C数值属性.因此,我对下溢现象感兴趣.任何人都可以给我一个下溢的例子以及如何处理它? 解决方法 浮点下溢的一个例子是: double d = DBL_MIN / 3.0; 符合IEEE 754的实现应该将d设置为“subnormal”,即一个接近于零的数字,精度会降低.您将在Wik
我正在尝试理解C数值属性.因此,我对下溢现象感兴趣.任何人都可以给我一个下溢的例子以及如何处理它?
解决方法
浮点下溢的一个例子是:
double d = DBL_MIN / 3.0; 符合IEEE 754的实现应该将d设置为“subnormal”,即一个接近于零的数字,精度会降低.您将在Wikipedia找到大量信息. 一些实现可能“刷新到零”.上例中的结果是将d设置为零. 下溢是较大的负指数无法表示数字的结果.有时可以通过“规范化”计算来避免它们,这相当于以某种方式计算x1 * 2N,x2 * 2N,…而不是x1,x2,……对于你选择的N. 浮点下溢不是未定义的行为.如果您愿意,可以使用“FPU例外”通过轮询或接收SIGFPE来检测它.请注意,除了名称之外,“FPU异常”与C异常没有任何共同之处. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |