![]() |
Ganze Zahl runden
Wie kann man eine ganze zahl runden??
z.B. 1672600 zu 1,673 Millionen aber auch: 1378 zu 1400 wenn möglich bitte mit kleinem Code-beispiel... thAnx. |
Re: Ganze Zahl runden
es gibt eine funktion round!
dazu kannst du dann noch mit 10^n und mit 10^-n spielen um das komma zu verrücken! |
Re: Ganze Zahl runden
Mit
![]() |
Re: Ganze Zahl runden
Mit format habe ich so meine Probleme, denke das ist das richtige, aber will einfach nicht klappen.
Daher meine Bitte, mit Code-beispiel.... |
Re: Ganze Zahl runden
Zitat:
|
Re: Ganze Zahl runden
um 1378 z.B. zu runden:
Delphi-Quellcode:
ungetestet aber könnte funktionieren... wenn nicht und du kannst dir nicht erklären warum nicht, dann einfach nochmal posten!
uses math;
var zahl: real; level: integer; zahl:=1378; level:=2; zahl:=zahl*Power(10,-level); zahl:=Round(zahl); zahl:=zahl*Power(10,level); |
Re: Ganze Zahl runden
Einen zusammenhang gibt es da auch nicht.
Aktuell ist folgendes: Ich habe eine Rangliste (top10), die Punktzahlen bewegen sich im bereich von 1- >20 Millionen BSP1: 3343004 BSP2: 205668566 Für mich ist es ausreichend wenn da stünde: 3,343 Millionen also nicht mehr 3343004 oder im 2. Beispiel eben: 20,567 Millionen antatt von 205668566 |
Re: Ganze Zahl runden
Delphi-Quellcode:
EDIT: Beim 2. FloatToStr mit IntToStr ausgetauscht.
procedure TForm1.Button1Click(Sender: TObject);
var i: integer; begin i:= 1672600; caption:= floatToStr(round(i /1000)/ 1000); i:= 1378; caption:= caption+ ' '+ IntToStr(round(i /100)* 100); end; |
Re: Ganze Zahl runden
Wenn es dir darum geht hohe Highscores (doppelt :stupid: ) als kleinere Zahlen darzustellen dürfte das hier auch hilfreich sein!
Delphi-Quellcode:
Edit: Aber...
if score>=1000000 then
begin score:=Round(score/1000); string:=FloatToStr(score/1000)+' Mio.'; end; Zitat:
|
Re: Ganze Zahl runden
:bounce2: Super, Ihr seid klaSSe
danke! |
Re: Ganze Zahl runden
nun doch noch eine Frage zum runden ...
wie kann man immer aufrunden ??? Habe die Zahl: 1017 und die soll zu 1100 gerundet werden. Es soll eigentlich IMMER zum nächsten 100er aufgerundet werden. |
Re: Ganze Zahl runden
Delphi-Quellcode:
uses Math;
.. RoundTo(Zahl, 2); .. |
Re: Ganze Zahl runden
Will immer aufrunden !!
Dies bringt mir bei 1017 aber 1000, rundet also normal. |
Re: Ganze Zahl runden
hat sich erledigt, mit SetRoundmode geht das dann ...
Danke. |
AW: Ganze Zahl runden
Hallo Leute,
also ich hab's so gemacht : function Runde(N, R : Integer) : string; begin repeat inc(N); until N mod R = 0; Result := IntToStr(N); end; procedure TForm1.Button1Click(Sender: TObject); begin edit2.Text := Runde(StrToInt(edit1.Text), 5); // auf 5 runden, 10 auf 10 runden end; Grüße Manni |
AW: Ganze Zahl runden
Zitat:
Im Grunde führst du da eine Addition mit Hilfe von inc() und einer Schleife aus.
Delphi-Quellcode:
function Runde(N, R : Integer) : Integer;
var rest: integer; begin rest := N div R; if (rest <> 0) then result := N + (R-rest); else result := N; end; |
AW: Ganze Zahl runden
Ich hätt noch eine mathematische Lösung, nur mit/für Integern.
Delphi-Quellcode:
// aufrunden
x := x + (step - x mod step) mod step; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:17 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 by Thomas Breitkreuz