Zitat von
axelf98:
Müsste eigentlich so stimmen:
Delphi-Quellcode:
function Formatieren(KB: Extended): String;
const Genauigkeit = 1000;
var
Dimension : String;
begin
if KB >= 0 then Dimension := 'KiloByte';
if KB > 1023 then Dimension := 'MegaByte';
if KB > 1048575 then Dimension := 'GigaByte';
if KB > 1073741823 then Dimension := 'TeraByte';
if KB > 1099511627775 then Dimension := 'PetaByte';
if KB > 1125899906842619 then Dimension := 'ExaByte';
if Dimension = 'KiloByte' then result := Floattostr(KB)+ ' ' + Dimension;
if Dimension = 'MegaByte' then result := Floattostr(round((KB / 1024) * Genauigkeit)/Genauigkeit) +' ' + Dimension;
if Dimension = 'GigaByte' then result := Floattostr(round((KB / 1048576) * Genauigkeit)/Genauigkeit) +' ' + Dimension;
if Dimension = 'TeraByte' then result := Floattostr(round((KB / 1073741824) * Genauigkeit)/Genauigkeit) +' ' + Dimension;
if Dimension = 'PetaByte' then result := Floattostr(round((KB / 1099511627776) * Genauigkeit)/Genauigkeit) +' ' + Dimension;
if Dimension = 'ExaByte' then result := Floattostr(round((KB / 1125899906842620) * Genauigkeit)/Genauigkeit) +' ' + Dimension;
end;
Willst du ein Preis gewinnen bei der Frage: "Wer kann noch mehr unnötige if-Bedingungen schreiben?"
Wozu bitte sehr der erste Block mit den if's bzw., wenn du den nutzt warum dann der zweite? Rechne doch gleich um.
Und mit Format(...) bekommst du sogar Tausendertrennzeichen hin.