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

C/C++中sqrt函数的保证精度

发布时间:2020-12-16 09:50:58 所属栏目:百科 来源:网络整理
导读:每个人都知道C/C++中math.h / cmath的sqrt函数 – 它返回其参数的平方根.当然,它必须有一些错误,因为不是每个数字都可以精确存储.但我保证结果有一定的精确度吗?例如,’它是可以用浮点类型表示的平方根的最佳近似值,如果你计算结果的平方,它将使用给定的浮
每个人都知道C/C++中math.h / cmath的sqrt函数 – 它返回其参数的平方根.当然,它必须有一些错误,因为不是每个数字都可以精确存储.但我保证结果有一定的精确度吗?例如,’它是可以用浮点类型表示的平方根的最佳近似值,如果你计算结果的平方,它将使用给定的浮点类型尽可能接近初始参数?

C/C++标准有什么关于它的吗?

解决方法

对于C99,没有具体要求.但是大多数实现试图尽可能地支持附件F:IEC 60559浮点运算.它说:

An implementation that de?nes __STDC_IEC_559__ shall conform to the specifications in this annex.

和:

The sqrt functions in <math.h> provide the IEC 60559 square root operation.

IEC 60559(相当于IEEE 754)讲述了像sqrt这样的基本操作:

Except for binary <-> decimal conversion,each of the operations shall be performed as if it first produced an intermediate result correct to infinite precision and with unbounded range,and then coerced this intermediate result to fit in the destination’s format.

最后一步包括根据几种舍入模式进行舍入,但结果必须始终是目标精度中最接近的可表示值.

(编辑:李大同)

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

    推荐文章
      热点阅读