![]() |
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 |
Re: Aufrunden auf den nöchsten 5 oder 10er
Zitat:
|
Re: Aufrunden auf den nöchsten 5 oder 10er
Ein bisschen Code zum testen
Delphi-Quellcode:
mfg
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; |
Re: Aufrunden auf den nöchsten 5 oder 10er
Zitat:
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. |
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