Cześć. Piszę w C++ Builder 6 i pojawił mi się dzisiaj problem, którego nie potrafię rozgryźć.
Mianowicie chciałbym aby po wykonaniu operacji program wyświetlił mi czas w sekundach z 3 miejscami po przecinku.
Załatwiłem to "printf("%.2f",final)" ale w labelku ostatecznie wyświetla się -1 pomimo, że wartość float final = (end-start) / 1000; jest zawsze równa 1 z przecinkiem i dużą ilością liczb. Może ktoś z Was coś wymyśli.
KOD:
void __fastcall TForm1::Button1Click(TObject* Sender)
{
if (RadioButton1->Checked) // Pierwszy FOR
{
TColor k = RGB(rand() % 256, rand() % 256, rand() % 256);
float start = clock();
for (int t = 0; t < 5; t++)
{
for (int x = 0; x < iw; x++)
{
for (int y = 0; y < ih; y++)
{
Image1->Canvas->Pixels[x][y] = k;
}
}
}
float end = clock();
float final = (end - start) / 1000;
Label18->Caption = printf("%.2f", final);
}