检测纯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. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |