#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です」_この結論にどうやって到達しましたか? –
単精度浮動小数点数は、これらの10進数(6以上)のすべての表現を保証するのに十分なスペースがありません。あなたは何をしようとしていますか? –
このコードはコンパイルされません。あなたは 'f'の宣言をしていません。あなたの_actual_ [MCVE]を投稿して、記載された出力につなげてください。 –