【发布时间】:2012-07-26 06:03:05
【问题描述】:
下面这段代码
std::cout<<boost::lexical_cast<std::string>(2.34)<<std::endl
我得到以下输出:
2.3399999999999999
如果我这样做了
double d = 2.34;
std::stringstream ss;
ss<<d;
std::string s = ss.str();
cout<<s<<endl;
我得到以下输出:
2.34
为什么会这样?显然,我正在寻找后者的输出表示,而不是前者。
谢谢,
【问题讨论】:
-
@NicolBolas 已编辑,不确定 1 是如何溜进来的……