生成下一个最大或最小的可表示的浮点数,而无需窜改 [英] Generate next largest or smallest representable floating point number without bit twiddling
本文介绍了生成下一个最大或最小的可表示的浮点数,而无需窜改的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
std :: nextafter()
。在C99系统中,你可以使用 nextafterf
, nextafter
或 nextafterl , double
和长双倍
)。
Given an arbitrary finite floating point number, is there a way to determine what the next representable floating point number? For example, given 1.0f, by definition the next largest representable number is 1.0f + std::numeric_limits<float>::epsilon(). Is there a way to synthesize an epsilon for any value - not just 1.0f - without resorting to bit twiddling and/or explicit knowledge of how the machine represents floating point values?
解决方案 In C++11, you use std::nextafter()
. Lacking that, on a C99 system, you use nextafterf
, nextafter
, or nextafterl
from the C math library (for types float
, double
, and long double
, respectively).
这篇关于生成下一个最大或最小的可表示的浮点数,而无需窜改的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文