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

检测纯C中的精度损失

发布时间:2020-12-16 09:41:58 所属栏目:百科 来源:网络整理
导读:当您使用浮点数(浮点数,双数,长双数)进行操作时,是否可以检测到精度损失?说: template typename F F const sum(F const a,F const b){ F const sum_(a + b); // The loss of precision must be detected (here or one line above) if some fraction bit is
当您使用浮点数(浮点数,双数,长双数)进行操作时,是否可以检测到精度损失?说:

template< typename F >
F const sum(F const & a,F const & b)
{
    F const sum_(a + b);
    // The loss of precision must be detected (here or one line above) if some fraction bit is lost due to rounding
    return sum_;
}

特别感兴趣的是x87 FPU存在于目标体系结构中,但没有将asm例程干预到纯C代码中. C 11或gnu 11特定功能也被接受(如果有的话).

解决方法

C标准对浮点精度的概念非常模糊.没有完全符合标准的方法来检测精度损失.

GNU provides an extension启用浮点异常.您想要捕获的异常是FE_INEXACT.

(编辑:李大同)

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

    推荐文章
      热点阅读