Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Aufrunden auf den nöchsten 5 oder 10er (https://www.delphipraxis.net/101405-aufrunden-auf-den-noechsten-5-oder-10er.html)

dominikkv 12. Okt 2007 15:41

Re: Aufrunden auf den nöchsten 5 oder 10er
 
oder
Delphi-Quellcode:
if (((Zahl - Trunc(Zahl)) > 0) or ((Trunc(Zahl) mod 5) > 0)) then
  Zahl := (Trunc(Zahl) div 5 + 1) * 5;

manfred_h 12. Okt 2007 19:37

Re: Aufrunden auf den nöchsten 5 oder 10er
 
Danke für die vielen Vorschläge von Euch allen! :thumb:

Habs mit der Variante von mkinzler gelöst:
Delphi-Quellcode:
gZahl := (Trunc(Zahl) DIV <schritt> + 1) * <schritt>;
Shalom
Manfred

dominikkv 12. Okt 2007 20:27

Re: Aufrunden auf den nöchsten 5 oder 10er
 
der rundet dann aber die 5 zur 10 auf

die beste Methode ist IMHO die von Apollonius:
Delphi-Quellcode:
Zahl := Ceil(Zahl/5) * 5;
Du musst allerdings noch die Unit Math in die uses aufnehmen.
Wenn du das nicht willst kannst du meine Funktion nehmen:
Delphi-Quellcode:
if (((Zahl - Trunc(Zahl)) > 0) or ((Trunc(Zahl) mod 5) > 0)) then
  Zahl := (Trunc(Zahl) div 5 + 1) * 5;
Allerdings funktioniert die nicht mit negativen Zahlen, zB -5,3

Progman 12. Okt 2007 20:33

Re: Aufrunden auf den nöchsten 5 oder 10er
 
warum nehmt ihr nicht einen simplen Vergleich?
Delphi-Quellcode:
if Zahl <= 5 then Ergebnis := 5 else
 if ((Zahl >5) and (Zahl <= 10)) then Ergebnis := 10;

mkinzler 12. Okt 2007 20:34

Re: Aufrunden auf den nöchsten 5 oder 10er
 
Zitat:

Zitat von Progman
warum nehmt ihr nicht einen simplen Vergleich?
Delphi-Quellcode:
if Zahl <= 5 then Ergebnis := 5 else
 if ((Zahl >5) and (Zahl <= 10)) then Ergebnis := 10;

Da es für jedes Vielfaches gelten soll

Progman 12. Okt 2007 20:36

Re: Aufrunden auf den nöchsten 5 oder 10er
 
achso, sorry, aus der Anfangsfrage hatte ich entnommen, dass es nur um Zahlen bis 10 geht ;)

winkelmesser 13. Okt 2007 00:43

Re: Aufrunden auf den nöchsten 5 oder 10er
 
Rein mathematisch

( Ganzzahl ( ( Zahl / 5 ) – 0,01 ) * 5 ) + 5

mfg

Namenloser 13. Okt 2007 01:24

Re: Aufrunden auf den nöchsten 5 oder 10er
 
Wozu -0.01, wenn man fragen darf :gruebel:

winkelmesser 13. Okt 2007 09:22

Re: Aufrunden auf den nöchsten 5 oder 10er
 
Hallo NamenLozer


Um sicherzustellen das bei der Zahl 5.0 es mir den Multiplikator 0 liefert
Denn
5/5 = 1
1 – 0,01 = 0,99 // 0,01 bis max 0,09 bei 1/10 schritten
Ganzzahl von 0,99 = 0

Wie gesagt Rein mathematisch
Getestet mit Excel

mfg

Khabarakh 13. Okt 2007 11:10

Re: Aufrunden auf den nöchsten 5 oder 10er
 
Zitat:

Zitat von winkelmesser
Rein mathematisch

Waren die bisherigen Funktionen also unmathematisch? Ich würde sagen, Apollonius' Version[*] ist sogar noch mathematischer, da sie durch Verwendung der korrekten Funktion (ceiling statt floor) den hässlichen Epsilon-Wert vermeidet.
[*]Dass er es jedoch geschafft hat, das "<schritt>" in den (bzw. zumindest meinen) HTML-Code zu schmuggeln, finde ich etwas beängstigend :gruebel: :stupid: .
Zitat:

Zitat von HTML Tidy
line 865 column 890 - Fehler: element "SCHRITT" undefined



Alle Zeitangaben in WEZ +1. Es ist jetzt 09:57 Uhr.
Seite 2 von 3     12 3      

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