假设符合IEEE-754标准,是否保证在通过双重传输时保留浮动?
换句话说,以下断言是否会始终满足?
int main()
{
float f = some_random_float();
assert(f == (float)(double)f);
}
Run Code Online (Sandbox Code Playgroud)
假设f可以获取IEEE定义的任何特殊值,例如NaN和Infinity.
根据IEEE的说法,是否存在断言将被满足的情况,但是在通过double传输之后不能保留确切的位级表示?
代码段在C和C++中都有效.