0 0 Stimmen

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

Frage von Gast | 23.01.2016 um 14:18 Uhr

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

Delphianer

Profil anzeigen | Nachricht
Avatar
2Beste Antwort
2 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 Uhr

AntwortenPositiv Negativ
Antworten

Ähnliche Themen

PHP: Zahlen runden
Tutorial | 0 Kommentare

Wichtiger Hinweis

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.