Toon posts:

[Delphi] Real afronden

Pagina: 1
Acties:
  • 344 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Ik wil een Real afronden op 2 getallen achter de komma. Met de functie Round kom ik niet op het gewenste resultaat.

Iemand hier weet vast wel hoe dat moet :)

Thnx !

Verwijderd

Probeer RoundTo of SimpleRoundTo eens

Kijk voor de preciese argumenten etc. ff in de Delphi help

  • RickN
  • Registratie: December 2001
  • Laatst online: 14-06-2025
Die functies ken ik niet, maar dit werkt ook:

Vermenigvuldig je real met 100, rond dan af en deel tenslotte weer door 100.

He who knows only his own side of the case knows little of that.


  • TheLunatic
  • Registratie: April 2001
  • Laatst online: 09-07 16:41

TheLunatic

Ouwe boxen.

Als het alleen maar om de weergave gaat, weet ik van Turbo Pascal dat je het zo kunt doen :
code:
1
2
3
4
5
6
var getal:real;

begin
getal:=5;
writeln(getal:0:2);
end.

en aangezien Delphi ook Pascal is zal dit misschien wel werken.

Mother, will they like this song?


  • RickN
  • Registratie: December 2001
  • Laatst online: 14-06-2025
Op woensdag 02 januari 2002 19:29 schreef TheLunatic het volgende:
Als het alleen maar om de weergave gaat, weet ik van Turbo Pascal dat je het zo kunt doen :
code:
1
2
3
4
5
6
var getal:real;

begin
getal:=5;
writeln(getal:0:2);
end.

en aangezien Delphi ook Pascal is zal dit misschien wel werken.
Die constructie ken ik niet. Voor een specifieke weergave van een getal gebruik ik altijd FormatFloat().

He who knows only his own side of the case knows little of that.


Verwijderd

Topicstarter
thnx !

Verwijderd

En er is ook nog een andere functie FloatToStrF
en die werkt alsvolgt :

FloatToStrF(waarde, ffNumber, 15,2);

heb je ook gelijk duizendtallen zodat er netjes een punt komt te staan.

  • wizl
  • Registratie: Maart 2001
  • Laatst online: 27-02-2023

wizl

hmmz

Delphi gebruikt idd. als sinds jaar en dag het zgn. bankers-rounding . . .
Gebruik deze functie om af te ronden op de manier waarop je gewend bent :P
code:
1
2
3
4
5
6
7
function RondAf(Bedrag: Currency): Currency;
begin
  if Bedrag < 0.0 then
    Result := Int((Bedrag * 100) - 0.5) / 100
  else
    Result := Int((Bedrag * 100) + 0.5) / 100;
end;

Verwijderd

Dit is heel makkelijk te doen met FloatFormat()
code:
1
2
3
4
5
6
7
8
9
10
11
procedure TForm1.Button1Click(Sender: TObject);

var
  rEuro     : real;
  sResult   : string;

begin
  rEuro := 1.223434534535436;
  sResult := FormatFloat('0.00', rEuro);
  edit1.Text := sResult;
end;
Pagina: 1