![]() |
Zahl soll nur zwei kommastellen haben
Hi,
Beim klick werden Dateien in eine ListView geladen. Folgenden codeteil verwende ich für die Dateiengröße:
Delphi-Quellcode:
Wenn ich dies mache, werden leider eine Menge Kommastellen gezeigt. Was muss ich ändern, das z.b nur 2 kommastellen angezeigt werden ?
Subitems.Add(FloatToStr((sr.Size) / 1024));
mfg |
Re: Zahl soll nur zwei kommastellen haben
entweder nimmst du
Delphi-Quellcode:
oder
formatfloat('0', sr.Size / 1024);
Delphi-Quellcode:
gibt, bestimmt noch mehr möglichkeiten.
inttostr(round(sr.Size / 1024));
mit
Delphi-Quellcode:
oder
formatfloat('0.00', sr.Size / 1024);
Delphi-Quellcode:
kannst du das ganze auch noch auf 2 nachkommastellen setzen
FloatToStr(round(sr.Size * 100 / 1024) / 100);
|
Re: Zahl soll nur zwei kommastellen haben
Hallo, gugg dir mal formatfloat oder floattostrf an.
Mfg Frank edit: zu langsam ;) |
Re: Zahl soll nur zwei kommastellen haben
Man kann auch folgende Funktion verwenden, um auf eine beliebige Anzahl von Stellen zu runden:
Delphi-Quellcode:
Ich weiß jetzt zwar nicht genau, wie groß der Bereich von Extended ist, aber es könnte zu Bereichsüberschreitungen kommen, wenn Anzahl_Stellen zu groß gewählt wird. (Allerdings ist das eher unwahrscheinlich, denn wer will schon auf -sagen wir mal- 98 Stellen nach dem Komma runden? :wink: )
function Runden(x: Extended; Anzahl_Stellen: Byte): Extended;
begin Result:= Round(x * IntPower(10, Anzahl_Stellen)) / IntPower(10, Anzahl_Stellen); end; |
Re: Zahl soll nur zwei kommastellen haben
Hi,
Delphi-Quellcode:
folgendes gilt:
FloatToStrF(Variable, ffNumber, 8, 2);
FloatToStrF (Zahl, Format, Genauigkeit, Kommastellen); wobei FloatToStr die Abkürzung für >Float To String Format< ist. Bedeutung: Dezimalzahl formatiert in String umwandeln MfG Marc |
Re: Zahl soll nur zwei kommastellen haben
oder wenn du kaufmännisch runden willst:
Delphi-Quellcode:
habe ich hier im forum gefunden, weiß aber leider nicht mehr, wer das gepostet hat.
function Runden(wert: extended; stellen: integer = 0):extended;
. . {----------------------------------------------------------------------------- Procedure: Runden Date: 08-Okt-2004 Arguments: wert: extended; stellen: integer = 0 Result: extended -----------------------------------------------------------------------------} function Runden(wert: extended; stellen: integer = 0):extended; var integerWert: integer; format: string; i: integer; temp: string; begin result := 0 ; try wert:=wert*power(10,stellen); if wert > 0 then begin wert:=wert+0.51; SetRoundMode(rmDown); // Art und Weise wie gerundet wird. end else if wert < 0 then begin wert:=wert-0.51; SetRoundMode(rmUp); // Art und Weise wie gerundet wird. end else if wert = 0 then begin SetRoundMode(rmNearest); //Nochmal die Art und Weise. end; integerwert:=round(wert); wert:=integerwert/power(10,stellen); if stellen = 0 then Format:='#0' else begin for i:=1 to stellen do begin Format:=Format+'0'; end; Format:='#0.'+Format; end; temp:=FormatFloat(Format, wert); Result:=StrToFloat(temp); except on E: Exception do begin fehlermeldung('- Runden - Wert: ' + floattostr(wert) + ' , Stellen: ' + floattostr(stellen) + ' - ' + e.Message); end; end; end; greetz |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:07 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz