This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
vba:cast:roundcurr [05.01.2015 09:57:59] yaslaw created |
vba:cast:roundcurr [31.05.2017 11:32:34] (current) yaslaw [Enum rcRoundType] |
||
---|---|---|---|
Line 1: | Line 1: | ||
<const> | <const> | ||
- | version=1.0.0 | + | version=1.1.0 |
- | vdate=05.01.2015 | + | vdate=24.08.2016 |
fname=cast_roundcurr.bas | fname=cast_roundcurr.bas | ||
ns=%NAMESPACE% | ns=%NAMESPACE% | ||
Line 9: | Line 9: | ||
====== [VBA] roundCurr() ====== | ====== [VBA] roundCurr() ====== | ||
+ | //Mit der Funktion roundCast() kann man schnell und einfach Währungsrundungen durchführen. Klassisches Beispiel ist die 5-Rappen-Rundung in der Schweiz. Auch andere Rundungen mit einer Genaugkeit lasen sich druchführen. | ||
+ | // | ||
==Version %%version%% - %%vdate%%== | ==Version %%version%% - %%vdate%%== | ||
- | |||
- | Mit der Funktion roundCast() kann man schnell und einfach Währungsrundungen durchführen. Klassisches Beispiel ist die 5-Rappen-Rundung in der Schweiz. | ||
- | |||
{{%%fname%%|Download %%fname%% (V-%%version%%)}} | {{%%fname%%|Download %%fname%% (V-%%version%%)}} | ||
===== Definition ===== | ===== Definition ===== | ||
- | <code>Double = cValue(Double [,Double])</code> | + | <code>roundedValue = roundCurr(value, precision [,roundType])</code> |
- | <code vb>roundCurr(ByVal iValue As Double, ByVal iPrecision As Double) As Double</code> | + | <code vb>roundCurr(ByVal iValue As Double, ByVal iPrecision As Double, Optional ByVal iRoundType As rcRoundType = rcRound) As Double</code> |
***iValue** Wert der gerundet werde soll | ***iValue** Wert der gerundet werde soll | ||
- | ***iPrecision** Genauigkeit | + | ***iPrecision** Genauigkeit. Achtung: Ist nicht die Anzahl Nachkommastellen. Auf ganze Zahlen Runden ist also nicht 0 sondern 1 (siehe Beispiele) |
+ | ***iRoundType** Art wie gerundet werden soll. Siehe Enum rcRoundType | ||
+ | |||
+ | ==== Enum rcRoundType ==== | ||
+ | <code vb>'/** | ||
+ | ' * Type, wie die Funktion roundCurr() arbeiten soll. Normal runden, Aufrunden, Abrunden | ||
+ | ' */ | ||
+ | Public Enum rcRoundType | ||
+ | rcRound '0 Normal runden roundCurr(3.6, 0.5) = 3.5 | ||
+ | rcHalfDown '1 Alias zu normal. 0.5 wird abgerundet roundCurr(3.25, 0.5, rcHalfDown) = 3 | ||
+ | rcHalfUp '2 Ab der Hälfte aufrunden roundCurr(3.25, 0.5, rcHalfUp) = 3.5 | ||
+ | rcDowwn '3 immer abrunden roundCurr(3.4, 0.5, rcDowwn) = 3 | ||
+ | rcUp '4 immer aufrunden roundCurr(3.1, 0.5, rcUp) = 3.5 | ||
+ | End Enum</code> | ||
==== Beispiele ==== | ==== Beispiele ==== | ||
Line 34: | Line 46: | ||
<Double> 123.15 | <Double> 123.15 | ||
- | 'auf 1 Franken runden.Achtung | + | 'auf 1 Franken runden |
d roundCurr(123.13, 1) | d roundCurr(123.13, 1) | ||
<Double> 123 | <Double> 123 | ||
Line 41: | Line 53: | ||
d roundCurr(123.13, 0.25) | d roundCurr(123.13, 0.25) | ||
<Double> 123.25 | <Double> 123.25 | ||
+ | |||
+ | 'auf 50 Franken runden | ||
+ | d roundCurr(123.13, 50) | ||
+ | <Double> 100 | ||
</code> | </code> | ||
+ | |||
+ | Auf/Abrunden | ||
+ | <code vb>'Normal runden | ||
+ | d roundCurr(3.6, 0.5) | ||
+ | <Double> 3.5 | ||
+ | |||
+ | 'Alias zu normal. 0.5 wird abgerundet | ||
+ | d roundCurr(3.25, 0.5, rcHalfDown) | ||
+ | <Double> 3 | ||
+ | |||
+ | 'Ab der Hälfte aufrunden | ||
+ | d roundCurr(3.25, 0.5, rcHalfUp) | ||
+ | <Double> 3.5 | ||
+ | |||
+ | 'immer abrunden | ||
+ | d roundCurr(3.4, 0.5, rcDowwn) | ||
+ | <Double> 3 | ||
+ | |||
+ | 'immer aufrunden | ||
+ | d roundCurr(3.1, 0.5, rcUp) | ||
+ | <Double> 3.5</code> | ||
===== Code ===== | ===== Code ===== | ||
+ | Code zum importieren. Wenn er mit C&P in ein neus Modul eingefügt wird, dann muss die Zeile ''Attribute VB_Name = "cast_roundCurr"'' entfernt werden. | ||
+ | |||
<source '%%fpath%%/%%fname%%' vb> | <source '%%fpath%%/%%fname%%' vb> | ||