C ++ Помощь с setf floatfield из строки - PullRequest
0 голосов
/ 26 апреля 2011
*mit = 13311
std::istringstream iss(*mit);
double temp;
iss.setf(ios::fixed, ios::floatfield);
iss.precision(15);
iss >> temp;

std::cout<<"temp "<<temp<<endl; 
std::stringstream ss;
ss<<temp / 1024;

Я пробовал с / без заданной точности, я все еще получил 12.999 вместо 12.9990234375 Посоветуйте пожалуйста что я сделал не так? Благодарю. Andrew

1 Ответ

2 голосов
/ 26 апреля 2011

Добавить std::setprecision( 15 ) в cout

 std::cout<< "temp " << std::setprecision( 15 ) << temp <<endl;

РЕДАКТИРОВАТЬ : извините, если я вас неправильно понял.Вы ожидаете печатать 12.9990234375 или ожидаете, что ss будет 12.9990234375?Если второе, то сделать:

ss << std::setprecision(15) << temp / 1024;
...