
Hi all, The test below fails: #include <iostream> #include <boost/lexical_cast.hpp> int main(int argc, char* argv[]) { std::string s; try { double d = std::numeric_limits <double> ::max(); s = boost::lexical_cast <std::string> (d); } catch (const boost::bad_lexical_cast&) { std::cout << "double to std::string fails" << std::endl; } try { double dd = boost::lexical_cast <double> (s); } catch (const boost::bad_lexical_cast&) { std::cout << "std::string to double fails" << std::endl; } return 0; } To solve this issue I propose to alter the line "stream.precision(std::numeric_limits<Target>::digits10 + 1" in the constructor for lexical_stream into "stream.precision(std::numeric_limits<Target>::digits10 - 1". Regards, P. Sliepenbeek --------------------------------- Be a better Heartthrob. Get better relationship answers from someone who knows. Yahoo! Answers - Check it out.