00 Stimmen

Delphi/Lazarus: Zahl auf die nächsten 10, 100 oder 1000 runden

Frage von Gast | 23.01.2016 um 14:18

Ich habe schon das Tutorial darüber gelesen, wie man in Delphi und Lazarus auf eine bestimmte Anzahl von Nachkommastellen runden kann.

Mich würde allerdings nicht das Runden hinter dem Komma sondern das Runden vor dem Komma interessieren. Das heißt, ich würde gerne auf die Zehner-, Hunderter oder Tausender-Stelle runden. Also zum Beispiel 12345 auf 12340, 12300 oder 12000.

Gibt es auch dafür eine Funktion?

AntwortenPositivNegativ
2Beste Antwort2 Stimmen

Ja, es gibt eine Funktion und du kannst sogar dieselbe Funktion benutzen wie für das Runden auf Nachkommastellen.

Hier ist ein Beispiel:

x := 12345.12345;
k := RoundTo(x, -3);  // k = 12345.123
k := RoundTo(x, -2);  // k = 12345.12
k := RoundTo(x, -1);  // k = 12345.1
k := RoundTo(x,  0);  // k = 12345
k := RoundTo(x,  1);  // k = 12340
k := RoundTo(x,  2);  // k = 12300
k := RoundTo(x,  3);  // k = 12000
k := RoundTo(x,  4);  // k = 10000

Je nachdem ob wir der Funktion RoundTo einen positiven oder einen negativen Wert übergeben, wird entweder vor oder nach dem Komma gerundet. Um auf die Zehnerstelle zu runden müsstest du also entsprechend "1" übergeben, "2" für die Hunderterstelle, "3" für die Tausenderstelle und so weiter.

Wichtig: Damit es funktionieren, musst du die Unit Math hinzufügen. Wenn du die Unit nicht verwenden möchtest, gibt es hier auch noch weitere Ideen, diese Aufgabe zu lösen.
23.01.2016 um 14:20

AntwortenPositiv Negativ
Antworten

Ähnliche Themen

PHP: Zahlen runden

Tutorial | 0 Kommentare

Wichtiger Hinweis

Bitte beachten Sie: Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.

Jetzt mitmachen

Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.