[ slavkot @ 23.01.2004. 18:25 ] @
| Pozdrav,zanima me kako da u dijalog boxu prikažem realne brojeve npr. 2.56 ili 0.59 tj. sa decimalnom tačkom.Pokušao sam pomoću funkcije itoa() da konvertujem broj u string pa onda pomocu funkcije SetDlgItemText() da ga prikažem i to radi , ali itoa() može konvertovati samo cijele brojeve,kako bi konvertovao brojeve sa decimalnom tačkom u string ili ima li neka funkcija da ih direktno prikažem u dialog box ? |
[ Dragi Tata @ 23.01.2004. 18:58 ] @
Pogledaj _fcvt ili nešto slično...
[ leka @ 23.01.2004. 19:08 ] @
Slavko, ja bih te molio da prikacis ovde kod, tako da bar znamo o kakvom
se dijalogu radi... Prosto receno da znamo otprilike za sta ti to treba.
U svakom slucaju sta god da resis - pogledaj ovaj URL:
http://msdn.microsoft.com/libr...UsingDialogBoxes.asp#modal_box
Pozdrav.
[ slavkot @ 23.01.2004. 21:43 ] @
Evo o čemu se radi:Hocu da podjelim dva broja i da njihov rezultat prikažem u dialog boxu npr. pomoću ove funkcije :
int index = SendDlgItemMessage(hwnd, IDC_LIST,LB_ADDSTRING , 0,(LPARAM)buf);
Ali kako ona predstavlja samo stringove,pokusao sam da broj pretvorim u string pomoću itoa() pa da ga prikažem,međutim može,ali samo za cijele brojeve.E sad,ima li kakav drugi kod ili funkcija pomoću koje bi u dialog boxu prikazao realan broj npr. 0.236 ili rezultat djeljenja bilo koja dva broja.
Pokušao sam i pomoću funkcije :
SetDlgItemText(hwnd, IDC_TEXT,broj);
ili
SetDlgItemInt(hwnd,IDC_NUMBER,broj, TRUE);
ali opet samo mogu cijeli brojevi.U gornjoj funkciji prethodno primjenim
itoa(broj,buf,10);
Ili jos jedno pitanje,može li se realan broj npr 0.236,nije bitan broj decimala,konvertovati u string,neko mi je rekao da to uradim na sledeći način:
double a,b,c,d;
c=a/b;
celideo=(int)c;
deoizadectačke=c-celideo;
string=itoa(celideo)+'.'+itoa((int)(deoizadectačke*100000)) ;
ali nista od ovoga,nema šanse
[ NastyBoy @ 23.01.2004. 22:09 ] @
Najjednostavnije ti je da odvojis string (char[]) odgovarajuce velicine i da koristish sprintf() funkciju (isto sto i printf() samo shto rezultat upisuje u string) gde ces format za float vrednost da podesish kako tebi odgovara. Tu odmah mozes da reshish i drugi problem - jednostavno nadji zadnje (ujedno i prvo, jel?) pojavljivanje znaka '.' (koristeci strrchr()) i to ti je pochetak stringa iza decimalne tachke.
Quick & dirty solution :)
[ slavkot @ 23.01.2004. 22:25 ] @
Ok.,aj mi sad reci i za ovaj slučaj :
.
.
.
itoa('.' , buf , 10) ;
int index = SendDlgItemMessage(hwnd, IDC_LIST,LB_ADDSTRING , 0,(LPARAM)buf);
.
.
.
Na dialogboxu mi se pojavi decimalni kod tačke tj. broj 46 , kako da mi se pojavi sama tačka?
[ slavkot @ 23.01.2004. 22:34 ] @
Ljudi,rješeno. Može preko ove funkcije : sprintf(buf, "%3f", neki_broj) ,hvala na pomoći
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.