[ maximus_1 @ 29.09.2005. 12:48 ] @
Ovako:

Code:

AnsiString __fastcall TfrmMain::GetFileSize(AnsiString FileName)
{
        AnsiString Size;
        Extended y;
        int x;

        const AnsiString KB = " Kb";
        const AnsiString MB = " Mb";

        x = FileSizeByName(FileName);

        if(x >= 1048576)
        {
                x= x / 1048576;
                y = RoundTo(x, -2);
                Size = (FloatToStr(y)) + MB;
        }
        else
        {
                x = x / 1024;
                y = RoundTo(x, -2);
                Size = (FloatToStr(y)) + KB;
        }

        return Size;
}


Ovo bi trebalo raditi ali rezultat funkcije nema decimala. Npr ako je fajl velik 62,9 Kb, funkcija vraća rezultat 62 Kb.
Niako ne kontam di sam pogriješio?
[ yooyo @ 29.09.2005. 15:06 ] @
Code:
    
char temp[32];
int broj = FileSizeByName(FileName);
if (broj > (1024*1024))
{
    sprintf(temp, "%.2f MB",  (float)broj / (1024*1024) );
}
else
{
    sprintf(temp, "%.2f KB",  (float)broj / 1024);
}



U nizu temp se nalazi string koji predstavlja velicinu fajla. Prebaci ga u AnsiString... Ja ne znam kako jer ne koristim Borland.

yooyo
[ X Files @ 29.09.2005. 15:11 ] @
Code:

int x; // <-- probaj double x;

[ Tronic @ 29.09.2005. 20:52 ] @
int x; znači integer broj tj. cijelobrojni pa kao takav nema decimale.
[ maximus_1 @ 29.09.2005. 22:40 ] @
Citat:
X Files:
Code:

int x; // <-- probaj double x;


Da to je upalilo.

Hvala na odgovorima!