我刚刚在c ++中遇到过这个问题
std::cout << -5.0000004768371582 + 5 << "\n";
这将打印-4.76837e-007,即使你认为它会打印像0.000000476 ... 我知道浮点数并不总是正确的,但我以前从未见过它。 我也看到过这个与其他数字有关。
为什么会这样。我怎么能解决它?
答案 0 :(得分:9)
答案 1 :(得分:5)
您遇到的输出称为scientific notation。如果您希望以固定点表示法显示,请使用std::fixed
。
#include <iostream>
#include <iomanip>
int main()
{
std::cout << std::fixed << std::setprecision(10) << -5.0000004768371582 + 5 << "\n";
}