Для следующего фрагмента кода
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
Почему это происходит ? Очевидно, я ищу выходное представление последнего, а не первого.
Спасибо,