| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- /* ------------------------------------------------------------------------- */
- /* Preis Runden (RUNDEN.P) */
- /* ------------------------------------------------------------------------- */
- /* Input: Rundbetr */
- /* Rundcode */
- /* Output: Rundbetr */
- /* */
- /* ------------------------------------------------------------------------- */
- { v8/globvar.i " " " " "SHARED" }
- /*---------------------------------------------------------------------------*/
- DEF VAR VBetr AS DECIMAL FORMAT "99999999.9999-".
- DEF VAR VOp AS DECIMAL INIT 0.2.
- DEF VAR XPChar AS CHAR.
- /*---------------------------------------------------------------------------*/
- DO TRANSACTION:
- VBetr = Rundbetr.
- IF Rundcode = 1 THEN DO:
- VBetr = ROUND((VBetr / 100 * VOp), 4) / VOp * 100.
- END.
- IF Rundcode = 2 THEN DO:
- VBetr = ROUND((VBetr / 100), 3) * 100.
- END.
- IF Rundcode = 3 THEN DO:
- VBetr = VBetr + 0.0499.
- VBetr = ROUND((VBetr / 100), 3) * 100.
- END.
- IF Rundcode = 4 THEN DO:
- VBetr = VBetr - 0.0500.
- VBetr = ROUND((VBetr / 100), 3) * 100.
- END.
- IF Rundcode = 5 THEN DO:
- VBetr = ROUND((VBetr / 100), 2) * 100.
- END.
- IF Rundcode = 6 THEN DO:
- VBetr = VBetr + 0.4999.
- VBetr = ROUND((VBetr / 100), 2) * 100.
- END.
- IF Rundcode = 7 THEN DO:
- VBetr = VBetr - 0.5000.
- VBetr = ROUND((VBetr / 100), 2) * 100.
- END.
- IF Rundcode = 8 THEN DO:
- VBetr = ROUND((VBetr / 1000), 2) * 1000.
- END.
- IF Rundcode = 9 THEN DO:
- VBetr = VBetr + 4.9999.
- VBetr = ROUND((VBetr / 1000), 2) * 1000.
- END.
- IF Rundcode = 10 THEN DO:
- VBetr = VBetr - 5.0000.
- VBetr = ROUND((VBetr / 1000), 2) * 1000.
- END.
- IF Rundcode = 99 THEN DO:
- XPChar = STRING(VBetr,"-99999999.999").
- VBetr = DECIMAL(SUBSTRING(XPChar,01,12)).
- IF SUBSTRING(XPChar,13,01) > "4" THEN VBetr = VBetr + 0.01.
- END.
- Rundbetr = VBetr.
- END.
|