AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Aufrunden auf den nöchsten 5 oder 10er
Thema durchsuchen
Ansicht
Themen-Optionen

Aufrunden auf den nöchsten 5 oder 10er

Ein Thema von manfred_h · begonnen am 12. Okt 2007 · letzter Beitrag vom 13. Okt 2007
Antwort Antwort
Seite 2 von 3     12 3      
dominikkv

Registriert seit: 30. Sep 2006
Ort: Gundelfingen
1.109 Beiträge
 
Delphi 2007 Professional
 
#11

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

  Alt 12. Okt 2007, 15:41
oder
Delphi-Quellcode:
if (((Zahl - Trunc(Zahl)) > 0) or ((Trunc(Zahl) mod 5) > 0)) then
  Zahl := (Trunc(Zahl) div 5 + 1) * 5;
Dominik
Wer anderen eine Grube gräbt, hat ein Gruben-Grab-Gerät!
  Mit Zitat antworten Zitat
manfred_h

Registriert seit: 4. Nov 2005
Ort: Basel
442 Beiträge
 
Delphi XE2 Enterprise
 
#12

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

  Alt 12. Okt 2007, 19:37
Danke für die vielen Vorschläge von Euch allen!

Habs mit der Variante von mkinzler gelöst:
gZahl := (Trunc(Zahl) DIV <schritt> + 1) * <schritt>; Shalom
Manfred
  Mit Zitat antworten Zitat
dominikkv

Registriert seit: 30. Sep 2006
Ort: Gundelfingen
1.109 Beiträge
 
Delphi 2007 Professional
 
#13

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

  Alt 12. Okt 2007, 20:27
der rundet dann aber die 5 zur 10 auf

die beste Methode ist IMHO die von Apollonius:
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
Dominik
Wer anderen eine Grube gräbt, hat ein Gruben-Grab-Gerät!
  Mit Zitat antworten Zitat
Progman

Registriert seit: 31. Aug 2007
Ort: 99974 MHL
695 Beiträge
 
Delphi 10.1 Berlin Starter
 
#14

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

  Alt 12. Okt 2007, 20:33
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;
Karl-Heinz
Populanten von Domizilen mit fragiler, transparenter Aussenstruktur sollten sich von der Translation von gegen Deformierung resistenter Materie distanzieren!
(Wer im Glashaus sitzt sollte nicht mit Steinen werfen)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.852 Beiträge
 
Delphi 11 Alexandria
 
#15

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

  Alt 12. Okt 2007, 20:34
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
Markus Kinzler
  Mit Zitat antworten Zitat
Progman

Registriert seit: 31. Aug 2007
Ort: 99974 MHL
695 Beiträge
 
Delphi 10.1 Berlin Starter
 
#16

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

  Alt 12. Okt 2007, 20:36
achso, sorry, aus der Anfangsfrage hatte ich entnommen, dass es nur um Zahlen bis 10 geht
Karl-Heinz
Populanten von Domizilen mit fragiler, transparenter Aussenstruktur sollten sich von der Translation von gegen Deformierung resistenter Materie distanzieren!
(Wer im Glashaus sitzt sollte nicht mit Steinen werfen)
  Mit Zitat antworten Zitat
winkelmesser

Registriert seit: 9. Mär 2005
Ort: Hannover
17 Beiträge
 
Delphi 7 Personal
 
#17

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

  Alt 13. Okt 2007, 00:43
Rein mathematisch

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

mfg
Immer auf der Suche nach der Antwort auf die allumfassende Frage: Wo ist mein Kugelschreiber?
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#18

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

  Alt 13. Okt 2007, 01:24
Wozu -0.01, wenn man fragen darf
  Mit Zitat antworten Zitat
winkelmesser

Registriert seit: 9. Mär 2005
Ort: Hannover
17 Beiträge
 
Delphi 7 Personal
 
#19

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

  Alt 13. Okt 2007, 09:22
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
Immer auf der Suche nach der Antwort auf die allumfassende Frage: Wo ist mein Kugelschreiber?
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#20

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

  Alt 13. Okt 2007, 11:10
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 .
Zitat von HTML Tidy:
line 865 column 890 - Fehler: element "SCHRITT" undefined
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:50 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz