Delphi-PRAXiS
Seite 3 von 3     123   

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)

winkelmesser 13. Okt 2007 13:21

Re: Aufrunden auf den nöchsten 5 oder 10er
 
Also mit Rein mathematisch meinte ich nicht das die anderen Lösungsvorschläge NICHT MATHEMATISCH sind sondern das ich keine Delphi Syntax liefern kann weil ich nicht das wissen dafür habe und es mit Microsoft Excel getestet habe.

Ich hoffe das ich niemanden auf die Füße getreten bin und hoffe das auch niemand mir auf die Füße treten will


mfg

DeddyH 13. Okt 2007 13:25

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

Zitat von winkelmesser
Ich hoffe das ich niemanden auf die Füße getreten bin und hoffe das auch niemand mir auf die Füße treten will

Mach Dir keine Sorgen, hier entstehen öfter mal (teils hitzige) Diskussionen, bei denen es auch mal verbal "zur Sache geht". Wenn es zu schlimm wird, greifen die Moderatoren ein, außerdem haben sich anschließend eh meist alle "wieder lieb" und trinken ein virtuelles Bier zusammen.

winkelmesser 13. Okt 2007 20:06

Re: Aufrunden auf den nöchsten 5 oder 10er
 
Ein bisschen Code zum testen

Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
var s : string;
begin
  i := i + 0.1;
  str(I:2:2,S);
  label1.Caption := s;
  x := (Floor(((I/5)-0.01))*5)+5;
  str(x,S);
  label2.Caption := s;
end;
mfg

Khabarakh 13. Okt 2007 21:07

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

Zitat von winkelmesser
Also mit Rein mathematisch meinte ich nicht das die anderen Lösungsvorschläge NICHT MATHEMATISCH sind sondern das ich keine Delphi Syntax liefern kann weil ich nicht das wissen dafür habe und es mit Microsoft Excel getestet habe.

Na dann, dein erster Beitrag hat sich eben doch ein wenig die vorherigen, einwandfreien Beiträge missachtend angehört.
Noch ein kleiner Hinweis zu deiner Formel (abgesehen davon, dass du daraus gefahrlos ein paar Klammern entfernen kannst): Einen Epsilon-Wert von 0,01 halte ich eindeutig für zu hoch. Allerdings ist es gar nicht leicht, einen guten Wert dafür auszuwählen, ich würde wohl i * Math.DoubleResolution benutzen[*] (was selbst 5.0000000001 noch richtig umwandeln würde). Da diese Konstante aber gar nicht im interface-Teil deklariert ist, mache ich mir dann doch lieber das Leben etwas leichter ;) und benutze Apollonius' Version, die das ganze Problem elegant umgeht.
[*]Oder natürlich Extended, Hauptsache nicht Single bei solchen Aufgaben.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:24 Uhr.
Seite 3 von 3     123   

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