Konwersja string na double - zniekształcenie danych

0

Witam,
Chciałbym napisać funkcję konwertującą ze string na double, ale niestety tracę trochę danych.
Dla parametru double x = 32.123456 pokazuje jakieś liczby po tej liczbie. Próbowałem dodać przed kodem:

	int pom2 = x*100000;
	x = pom2/100000.0;

I wtedy x był równy 32.123449999999998. Bez tego kodu x był równy 32.123455999999997
A to kod funkcji bez powyższego kodu:

string double_to_string(double x){	
	string pom="";
	int czesc = x;
	pom = itoa(czesc);
	double reszta = x - czesc;
	pom +='.';
	if(reszta<=0)
		pom +='0';
	while(reszta>0)
	{
		reszta*=10;
		czesc = reszta;
		pom += (char)(czesc+48);
		reszta-=czesc;
	}
}
0

To w końcu string na double czy double na string?

0

Przepraszam najmocniej. Double na string. Na końcu funkcji return pom zapomniałem dopisać.

0

std::ostringstream strs;
strs << dbl;
std::string str = strs.str();

0

Chciałbym żeby moja funkcja działała bez używania stringstream.

1 użytkowników online, w tym zalogowanych: 0, gości: 1