Dear advanced g++ program: I copied a simple template and streamstring code from book, c++ cookbook, at chapter 3 section 5.pg131: Parsing a string containing a Number in Scientific Notation. ----------------------------------------------------------- #include <iostream> #include <sstream> #include <string> using namespace std; //double sciToDub(const string& str) { template<typename T> T strToNum(const string& str) { stringstream ss(str); T tmp; ss >> tmp; // double d = 0; // ss >> d; if (ss.fail()){ string s = "Unable to format "; s += str; s += " as a number!"; throw(s); } return(tmp); } int main() { try { /* cout << sciToDub("1.23456789e5") << endl; cout << sciToDub("6.02987654e-5") << endl; cout << sciToDub("asdf") << endl; */ double d = strToNum<double>("7.0"); cout << d << endl; float f = strToNum<float>("7.0"); cout << f << endl; int i = strToNum<int>("7.0"); cout << i << endl; char c = strToNum<char>("7.0"); cout << c << endl; } catch (string& e) { cerr << "Whoops: " << e << endl; } } ------------------------------------------------ my test result is all 4 output is 7 why is that, especially first two, double and float? thanks your help a lot in advance, Eric