[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Sep 2003
    Beiträge
    221

    Aufrunden auf die nächsten vollen 10 EUR

    Hallo zusammen,

    ich habe ein num. Feld (13,2) und möchte dieses immer auf die nächsten vollen 10,00 EUR aufrunden.

    Hat jemand ein Tipp wie man das schlank hinbekommt.

    Vielen Dank + schönes Schwitzen

    Peter
    Peter Kinne
    EDV-Beratung
    www.kinne.de

  2. #2
    Registriert seit
    Mar 2005
    Beiträge
    74
    Hallo Peter,

    %inth(Feld/10)*10 bzw. zum Aufrunden %inth(Feld/10+0.49)*10

    Gruß
    M.Withake

  3. #3
    Registriert seit
    Sep 2003
    Beiträge
    221
    Hi,

    rundet inth nicht kaufmännisch ????

    Peter
    Peter Kinne
    EDV-Beratung
    www.kinne.de

  4. #4
    Registriert seit
    Aug 2001
    Beiträge
    2.873
    z.B. so:

    PHP-Code:
    D MyNumFld        S             13P 2  inz(12320,11)          
    D MyResFld        S             13P 2                         
     
    *-------------------------------------------------
    C/Exec SQL  Set :MyResFld Ceiling(:MyNumFld/10) * 10      
    C
    /End-Exec                                                  
     
    /Free                                                      
        Dsply MyResFld
    ;                                         
        *
    INLR = *On;                                            
     /
    End-Free 
    Wir hatte übrigens in der iNN - eNews 5/2006 unter Tekki-Corner mit Nützliche SQL-Funktionen einen Tipp zu diesem Thema:
    iNN - eNews 5/2006

    Wer iNN noch nicht kennt oder sich registrieren möchte kann dies unter dem folgenden Link nachholen:
    iNN - Online.de

    Zur Erinnerung iNN ist kostenlos, jedoch nicht umsonst!

    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 4. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  5. #5
    Registriert seit
    Mar 2005
    Beiträge
    74
    Das stimmt, deswegen hatte ich meinen Beitrag nochmal aktualisiert.
    Durch die Addition von 0.49 bzw 0.499 kann man ein Aufrunden erzwingen.

  6. #6
    Registriert seit
    Sep 2003
    Beiträge
    221
    muss ich da nicht 4,99 aufaddieren um auf volle "10,00" aufzurunden.
    Peter Kinne
    EDV-Beratung
    www.kinne.de

  7. #7
    Registriert seit
    Mar 2005
    Beiträge
    74
    je nachdem wann die Addition durchgeführt wird. In meinem Fall wird die Addition nach der Division durchgeführt. Vor der Divison müsste die Anweisung so lauten:

    %inth((feld+4.99)/10)*10

    Die Lösung per SQL von Brigitta hat einen starken Overhead durch die SQL-Aufrufe und könnte bei vielen Berechnung sehr langsam werden. Vorteile wäre hier die Behandlung von negativen Zahlen, die man aber auch im RPG nachbilden könnte.

  8. #8
    Registriert seit
    Jul 2003
    Beiträge
    63
    Hallo zusammen,

    warum nicht einfach Division durch 10 mit Remainder,
    Mult 10
    Prüfung Remainder >= 5 then addiere 10

    K. Hardy

  9. #9
    Registriert seit
    Aug 2004
    Beiträge
    923

    Runden auf 10 Euro

    Zitat Zitat von peter.kinne
    ...Hat jemand ein Tipp wie man das schlank hinbekommt.
    ....
    Haben ja schon alle was gesagt, deshalb von mir noch ne "Lösung" in UraltRPG:

    Das 13.2 Feld (A) bekommt über ne Mini - DS ein Unterfeld 1.2 (B)
    Dann später an der Rundungsstelle im RPG einfach

    B DIV 1 C 12 60 61
    60 ADD 10 A
    60 SUB C A



    Änderung:
    um sich noch Feld C zu ersparen könnte mans auch so machen denke ich...

    B DIV 1 B 60 61
    60 ADD 10 A
    60 SUB B A

  10. #10
    cbe is offline [professional_User]
    Registriert seit
    May 2005
    Beiträge
    392
    Zitat Zitat von peter.kinne
    muss ich da nicht 4,99 aufaddieren um auf volle "10,00" aufzurunden.
    ich würde sogar vorschlagen 5 aufzuaddieren, denn aus 35,00 soll doch 40 werden und nicht 30, oder?

    Gruß
    Christian

  11. #11
    Registriert seit
    Aug 2004
    Beiträge
    923
    mhhh...

    dann habe ich das wohl falsch verstanden.
    Ich dachte auch bei 10,01 soll eine Rundung vorgenommen werden == 20,00??

    k.

  12. #12
    Registriert seit
    Jul 2003
    Beiträge
    331

    Thumbs up

    noch eine Lösung im Alt-RPG

    PHP-Code:
              add   9,99     A(13,2)
    A        div    10        B(10,0)
    B        mult  10        A 

Similar Threads

  1. Duplex-Druck auf vorbedrucktem Papier
    By jgv in forum NEWSboard Drucker
    Antworten: 7
    Letzter Beitrag: 02-08-13, 09:28
  2. Kein Zugriff über QNTC auf Win-Share
    By marmart in forum IBM i Hauptforum
    Antworten: 5
    Letzter Beitrag: 25-09-07, 15:29
  3. Nachricht CPDB053 beim Zugriff auf Windows Freigabe
    By schatte in forum NEWSboard Windows
    Antworten: 7
    Letzter Beitrag: 21-11-06, 11:37
  4. QNTC Zugriff auf CD Laufwerk Fehlerhaft
    By pwrdwnsys in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 07-11-06, 15:34
  5. Status nach Druck nich SAV, sonder Drucker auf END
    By zannaleer in forum NEWSboard Drucker
    Antworten: 6
    Letzter Beitrag: 13-09-06, 10:35

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •