Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Monate nach Jahre und umgekehrt (https://www.delphipraxis.net/147775-monate-nach-jahre-und-umgekehrt.html)

RWarnecke 16. Feb 2010 06:53


Monate nach Jahre und umgekehrt
 
Hallo zusammen,

ich soll die Anzahl von Monaten in einer Jahresdezimalzahl ausgeben. Wenn ich die Jahresdezimalzahl eingebe, sollen immer ganze Monatszahlen ausgegeben werden.

Beispiel :

2,5 Jahre --> 30 Monate
27 Monate --> 2,25 Jahre

u.s.w.

Jetzt hatte ich mir überlegt, das Ergebnis der Monatszahl immer als ganze Zahl anzuzeigen und die Jahreszahl immer mit 2 stellen hinterm Komma. Dabei rechne ich einfach nur Jahre mal 12 oder Monate durch 12.

Bekomme ich mit meinem Weg genaue Werte oder habe ich da einen Denkfehler drin ?

toms 16. Feb 2010 06:56

Re: Monate nach Jahre und umgekehrt
 
>--schnipp--<

himitsu 16. Feb 2010 07:00

Re: Monate nach Jahre und umgekehrt
 
Zwei Nachkommastellen sollten schon ausreichen, da ein Monat ja 0,0833... Jahre sind.

Du solltest dir aber überlegen, wie du rundest, da mit Hin- und Rückrechnung auch jeweils das Selbe ergeben.

z.B.
Monate = Abrunden(Jahre * 12)
Jahre = Aufrunden(Monate / 12)

Wenn du jeweils beides Auf- oder Abrundest, könnte dabei was Falsches rauskommen.

immer nur Aufrunden : 1,6 > 20 > 1,67 > 21 > 1,75
immer nur Abrunden : 1,4 > 16 > 1,33 > 15 > 1,25

Stevie 16. Feb 2010 07:39

Re: Monate nach Jahre und umgekehrt
 
Ich würde nicht runden, sondern das ganze einfach als Double zurück geben.
Wenn du den irgendwo anzeigen willst, kannst du ihn immernoch auf 2 Stellen nach dem Komma formatieren.

RWarnecke 16. Feb 2010 08:12

Re: Monate nach Jahre und umgekehrt
 
Zitat:

Zitat von Stevie
Ich würde nicht runden, sondern das ganze einfach als Double zurück geben.
Wenn du den irgendwo anzeigen willst, kannst du ihn immernoch auf 2 Stellen nach dem Komma formatieren.

Die Variante gefällt mir. Ich werde die Jahreszahl nur formatiert anzeigen. Bei den Monaten runde ich dann auf eine ganze Zahl.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:06 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