Witam, mam za zadanie napisać prosty program w WinAPI, który ma przeliczać cale na centymetry i na odwrót z użyciem dwóch radiobuttonów, edita i statica. Mam problem z konwersją. Mianowicie pobieram tekst z edita i konweruję go do bufora, następnie bufor konwertuję do double wykonuje mnożenie i double konwertuję do char*, następnie ustawiam tekst na statica:
dlugosc = GetWindowTextLength(GetDlgItem(hWnd, 1));
Bufor = (LPSTR) GlobalAlloc(GPTR, dlugosc + 1 ); // POBIERANIE TEKSTU DO BUFORA
GetWindowText(GetDlgItem(hWnd, 1), Bufor, dlugosc + 1);
double liczba;
liczba = atof(Bufor);
liczba = liczba * 2,54;
sprintf(wyn,"%0.3f",liczba);
SetWindowText(GetDlgItem(hWnd, 4), wyn); // USTAWIENIE TEKSTU STATIC'A
GlobalFree( Bufor ); //ZWOLNIENIE PAMIĘCI BUFORA
Nie ma błędów, jednak wartość wpisywana jest mnożona przez 2, a nie przez 2,54, tak jakby to był int a nie double. Gdzie robię błąd, jak to poprawnie skonwertować ? dodam, że "wyn" to char wyn[10]
cały kod:
https://pastebin.com/7Ba3iehX