【发布时间】:2019-01-17 04:52:28
【问题描述】:
为什么在下面的输出中 v 的值中添加了“32”?
int main()
{
float v = 9.999e8;
std::cout << "v --> " << v << std::endl;
std::cout << std::fixed;
std::cout << "v --> " << v << std::endl;
return 0;
}
输出:
v --> 9.999e+08
v --> 999900032.000000
^^
是打印值的人工制品,还是 9.999e+08 不能准确地表示为浮点数?
将 v 更改为 double 可以解决问题,但我想了解实际原因。
强文本
【问题讨论】:
-
他们所说的。尝试改用
double。
标签: c++ io floating-point precision