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

c – Downcasting double to float:是否有溢出行为保证?

发布时间:2020-12-16 03:40:27 所属栏目:百科 来源:网络整理
导读:如果我尝试这个 float f = (float)numeric_limitsdouble::infinity(); 或者,试图将任何比float max大的东西投放到浮点数,我保证最终达到无穷大吗? 它在海湾合作委员会工作,但它是一个标准呢? 解决方法 float f = (float)numeric_limitsdouble::infinity();
如果我尝试这个
float f = (float)numeric_limits<double>::infinity();

或者,试图将任何比float max大的东西投放到浮点数,我保证最终达到无穷大吗?

它在海湾合作委员会工作,但它是一个标准呢?

解决方法

float f = (float)numeric_limits<double>::infinity();

如果您的编译平台为浮点计算提供IEEE 754算法(通常会),则可以将f设置为无穷大.

Or indeed,try to cast anything bigger than float max down to a float,am I guaranteed to end up with infinity?

否.在默认的IEEE 754 round-to-nearest模式中,高于最大有限浮点数(即FLT_MAX)的几个双值将转换为FLT_MAX.精确的限制是FLT_MAX(C99十六进制表示中的0x1.fffffep127)和下一个浮点数之间的数字,如果单精度格式的指数具有较大的范围,则为0x2.0p128.因此,极限为0x1.ffffffp127或小数点的3.4028235677973366e 38.

(编辑:李大同)

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

    推荐文章
      热点阅读