Witam wszystkich forumowiczów.
Mój problem polega na tym że nie mogę przekonwertować dokładnie liczby zmiennoprzecinkowej na tablice znaków.
Oto znaczący kawałek kodu:
double val = 1.23456789;
string x = to_string(val);
std::cout << x;
funkcja to_string:
#include <string>
#include <sstream>
std::string to_string(double wartosc)
{
std::stringstream str;
str << std::fixed << wartosc;
std::string tekst = str.str();
return tekst;
}
No i tutaj pojawia się problem że ze stringa nie mogę wydobyć wszystkich liczb ze zmiennej => 1.234568, oto wynik. Gdzie zniknęła 7 tak swoją drogą? brak 9 jestem jeszcze w stanie jakoś poukładać w głowie bo faktem jest że stoi ona na końcu więc nie sprawia to aż takiego zdziwienia.
Próbowałem również konwersji za pomocą funkcji gcvt ale tutaj nie mogłem określić ilości znaków pobieranych z liczby tak, aby konwertować całą liczbę.
double val = 1.23456789;
char buf[32];
gcvt(val,10,buf);
wtedy wszystko ładnie i pięknie działa, tak na marginesie dodam jeszcze ze gdy jako ilość pobieranych znaków dam ' sizeof(val) ' wtedy natomiast zjadana jest ósemka i do tablicy leci => 1.2345679.
Trochę już się przy tym nagłowiłem i byłbym bardzo wdzięczny za pomoc. Zależy mi na tym aby móc odczytywać z tablicy znak po znaku.