Miejsca po przecinku = PRINTF. Pomoc

0

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);
    }
0

printf zwraca liczbę, którą przypisujesz do labelki. Jak to działa - skonsultuj z referencją BCB, jeśli wynik printf jest konwertowany do stringa to printf napotkał błąd, bo zwrócił ujemną wartość.

1 użytkowników online, w tym zalogowanych: 0, gości: 1