![]() |
Problem beim Runden mit Exp
Ich soll für die schule ein Programm schreiben, dass eine Zahl auf die angegebenen stellen nach dem Komma rundet.
Mein gedanke war, die zahl*10^stellen zu nehmen dann mit der funktion Round zu runden und wieder die Zahl/10^stellen zu nehmen. Beispiel: 5,23 auf eine stelle 5,23*10^1=52,3 round(52,3)=52 52/10^1=5,2 Soweit so gut. Aber das programm gibt 5,15031217640019 aus. Liegt das am Quellcode?
Delphi-Quellcode:
Ps:EdErgebnis,EdZahl und EdStellen sind Edit felder.
Procedure TForm1.Runden(Var Zahl:real;Stellen:integer);
Begin Zahl:=Zahl * exp (Stellen); Zahl:=round(zahl); zahl:=Zahl / exp(stellen); edergebnis.text:=FloattoStr(Zahl); end; procedure TForm1.BtRundenClick(Sender: TObject); Var X:real;Y:Integer; begin X:=StrToFloat(EdZahl.text); Y:=StrToInt(EdStellen.text); Runden(X,Y); end; Danke im Vorraus |
Re: Problem beim Runden mit Exp
Delphi-Quellcode:
Gruß Hagen
var
Power: Double; begin Power := Math.IntPower(10, Stellen); Result := Round(Zahl * Power) / Power; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:59 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