![]() |
Integer Wert auf 10ner Runden
Hi,
Ich habe folgendes Problem: Ich haben eine Integer Zahl zwischen 0 und ca. 1000 und diese Zahl soll auf glatte 10ner gerundet werden also in etwa so: 23=>20 145 =>150 230=>230 usw... Villeicht hat ja wer ne Idee. Gruß Snake |
Re: Integer Wert auf 10ner Runden
Durch 10, runden, mal 10 ?
Edit: Vll. uts auch die Funktion RoundTo ... |
Re: Integer Wert auf 10ner Runden
Zitat:
|
Re: Integer Wert auf 10ner Runden
+5 und dann die letzte stelle zu 0 machen!
|
Re: Integer Wert auf 10ner Runden
Zitat:
|
Re: Integer Wert auf 10ner Runden
Zitat:
Delphi-Quellcode:
Wenn die zahl negativ ist, musst du 5 abziehen, damit kaufmännisch gerundet wird.
gerundeteIntegerZahl := ((zahl+5) div 10) * 10;
|
Re: Integer Wert auf 10ner Runden
Wenn du nicht hunderte Werte hast, kannst du getrost die erste Möglichkeit nutzen, die ist dann schnell genug. Das könnte so aussehen:
Delphi-Quellcode:
Dies funktioniert übrigens auch mit negativen Werten.
function ExtendedRound(Number, RoundTo: Integer): Integer;
begin result := Round(Number / RoundTo) * RoundTo; end; // Aufruf ShowMessage(IntToStr(ExtendedRound(135, 10))); |
Re: Integer Wert auf 10ner Runden
Danke für eure Hilfe so hatte ich mir das vorgestellt jetzt geht es!
:-D |
Re: Integer Wert auf 10ner Runden
Zitat:
|
Re: Integer Wert auf 10ner Runden
Zitat:
Round() rundet ja nicht kaufmännisch (also ziffer <= 4: abrunden ziffer >= 5: aufrunden) sondern wenn die zu rundende Ziffer genau auf 5 steht wird einmal auf- und einmal abgerundet. Das hängt davon ab, ob die Ziffer davon gerade oder ungerade ist. ExtendedRound(135, 10) wird zu 140 (aufgerundet) ExtendedRound(145, 10) wird zu 140 (abgerundet) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:05 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