Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - 2 Stellen nach Komma


ASBMorsi2003 - Di 15.04.03 14:52
Titel: 2 Stellen nach Komma
Ich habe eine real Variable und möchte diese jetzt auf 2 Stellen nach dem Komma gekürzt haben! Wie funzt das! Danke im voraus!!!


Motzi - Di 15.04.03 15:01

Eigentlich ganz einfach...

Quelltext
1:
2:
3:
4:
var
  x: Real;

x := Round(x * 100)/100;


UGrohne - Di 15.04.03 15:02

Versuchs mal mit

Quelltext
1:
gerundet:=Trunc(variable * 100) / 100;                    


gerundet muss natürlich auch ein Float-Typ sein.

Gruß


UGrohne - Di 15.04.03 15:03

Hmm, war jmd schneller. Jetzt ist nur die Frage, ob er sie gerundet oder gekürtzt haben will, so wie er oben geschrieben hat.


Motzi - Di 15.04.03 15:08

UGrohne hat folgendes geschrieben:
Hmm, war jmd schneller. Jetzt ist nur die Frage, ob er sie gerundet oder gekürtzt haben will, so wie er oben geschrieben hat.

Naja, jetzt hat er halt beide Varianten da... ;)


mlamers - Di 15.04.03 20:58

Wenn es nur um die Darstellung, also die Umwandlung in einen String geht:

Quelltext
1:
2:
3:
var t : Real;

String:=FormatFloat('0.00',t)


Gruß
Michael


O'rallY - Mi 16.04.03 10:41

Ich glaube bei RoundTo kann man die Anzhal der Nachkommstellen als Parameter übergeben...


NoEon - Mi 16.04.03 14:26

Hi willst Du die Variable augeben??


Quelltext
1:
 label1.caption:=FloatToStrF(var, ffFixed, 18,2);                    

damit gibst Du eine belibiege Zahl mit 2 NAchkomma Stellen aus... vielleicht hilft Dir das ja weiter!


Gruss

NoEoN


pappelinda - Mo 26.05.03 13:20
Titel: round rundet wie ein banker
@Motzi wg. x := Round(x * 100)/100;

Liegt (x*100) genau in der Mitte zwischen zwei ganzen Zahlen, wird immer die gerade Zahl zurückgeliefert ("Banker’s Rounding").
D.h. 1,005 wird leider nicht auf 1,01 sondern auf 1,00 gerundet.


ErnestoChe - Mo 26.05.03 13:45

Hallo,

so gehts:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
procedure TForm1.Button1Click(Sender: TObject);
var
  d: double;
  str: String;
begin
  d := StrToFloat(Edit1.Text);
  str := Format('%4.2f', [d]);
  Edit2.Text := str;
end;


MFG

- Ernesto -