如何通过google glog打印完整的双精度

时间:2016-03-31 07:51:35

标签: c++ precision glog

我尝试像这样打印一个双变量a

double a;
//some statements for a
LOG(INFO) << a;

如何使用全精度打印a

1 个答案:

答案 0 :(得分:1)

你应该试试

#include <iomanip>      // std::setprecision

double a = 3.141592653589793238;
LOG(INFO) << std::fixed << std::setprecision( 15 ) << a;

如果这不起作用,您可以将其转换为std::string并使用std::stringstream

#include <sstream>      // std::stringstream 
#include <iomanip>      // std::setprecision 

double a = 3.141592653589793238;
std::stringstream ss;
ss << std::fixed << std::setprecision( 15 ) << a;
LOG(INFO) << ss.str();

或者,如果您想要完全精确,可以使用上述this answer之一。

第一种方法很可能是最有效的方法。