这是我的代码,只是一个用浮点数打印数字的基本测试程序,printf
效果很好(我猜因为格式是明确传递的)但std::cout
我是无法正确行事且std::setprecision
似乎没有帮助,你能帮我一把吗?
#include <iostream>
#include <iomanip>
int main ()
{
std::cout << double(1999999900) / 10000 << std::endl;
std::cout << std::setprecision(5) << double(1999999900) / 10000 << std::endl;
printf("%f\n", double(1999999900) / 10000);
return 0;
}
以下是输出,如何从std::cout
打印获得199999.99?
[root@ test00]# g++ -std=c++11 test1.cpp -o test1; ./test1
200000
2e+05
199999.990000
答案 0 :(得分:2)
使用
std::cout << std::setprecision(5) << std::fixed << double(1999999900) / 10000 << std::endl;