PDA

View Full Version : [c++] calcolare millisecondi prima che scatti un secondo


okay
28-02-2007, 09:26
sto facendo dei test e non mi stampa sempre 0.

quello che stò facendo è questo:
pT=ct.getElapsed();//prendo il tempo
...routine
sT=ct.getElapsed();//prendo di nuovo il tempo
e tramuto in ore, minuti, secondi e millisecondi.
La stampa è ok se è passato almeno 1 secondo infatti:
ms = ((sT-pT)-ss) * 1000.0f;//i millesecondi sono stampati correttamente se ss vale almeno 1...ok

ma se non è passato un secondo e voglio stampare quanti millisecondi sono passati faccio:
ml = (sT-pT)*1000.0f;
mi stampa 000 notare che ml è un int
mentre se lo dichiaro come float mi stampa gli ms giusti ma a me non piace il formato che è così:
sprintf (buff, "Time %.4f ms ",(sT-pT) * 1000.0f);
stampa --> 0.00156 che sono gli ms.

In sostanza quello che volevo fare è stampare tipo 654 millisecondi ovvero prima che arrivi a 1000 dato che un secondo nel calcolo del tempo non è stato raggiunto tipo:
sprintf (buff, "Time %.2d.%.2d.%.2d %.10d ",hh, mm, ss, ml);
stampa 00.00.00 765

ml è un int se lo metto come float è ok ma non è un fomato che mi piace ovvero 0.00156 dovrei stamapare 156.

okay
28-02-2007, 09:36
bhò ma pare corretto così:
ml = (pT)*1000.0f;
ml è un int e vale 009