float x = 384.951257;
std::cout << std::fixed << std::setprecision(6) << x << std::endl;
输出为 384.951263。为什么?我正在使用 gcc。
最佳答案
float
通常只有 32 位。每个十进制数字大约 3 位(210 大致等于 103),这意味着它不可能表示超过 11 个十进制数字,并且考虑其他信息还需要表示,比如幅度,比方说 6-7 位十进制数字。嘿,这就是你得到的!
检查例如维基百科了解详情。
使用double
或long double
以获得更好的精度。 double
是 C++ 中的默认值。例如,文字 3.14
是 double
类型。
关于C++ 浮点控制台输出问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21283804/