如果我尝试这个
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.