加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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异常没有任何共同之处.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读