#include<iostream>
long myround(float f)
{
if (f >= UINT_MAX) return f;
return f + 0.5f;
}
int main()
{
f = 8388609.0f;
std:cout.precision(16);
std::cout << myround(f) << std::endl;
}
输出:8388610.0浮动舍入误差
我试图使输出的感觉。大于 8388609.0的下一个浮点数是8388610但是为什么四舍五入的值不是8388609?
_“下一个大于8388609.0的浮点数是8388610”_你是如何得出这个结论的? –
单精度浮点数没有足够的空间来保证表示所有这些十进制数字(多于六个)。你想要做什么? –
此代码不能编译。你没有'f'的声明。张贴您的_actual_ [MCVE],导致规定的输出。 –