[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    May 2004
    Beiträge
    444

    Numerischen Wert aufrunden

    Hallo zusammen,

    entweder ich steh auf der Leitung (was nichts ungewöhnliches ist) aber wie bekomme ich es ohne Hilfsvariable hin den Wert einer Berechnung immer aufgerundet in ein Feld ohne Nachkommastellen zu bekommen.

    Also Ergebnisfeld hat die Länge 4,0
    Falls die Berechnung den Wert glatt z.B. 1,00000000 liefert soll das Ergebnis auch 1 sein,
    liefert die Berechnung eine Nachkommastelle z.B. 1,000001 soll das Ergebnis 2 sein.

    Also immer aufrunden nicht kaufmännisch runden.

    Vielen Dank für Eure Mühe

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.247
    Das geht leider nicht ohne Hilfsfeld, da es keine Standardfunktion ist:

    NkFeld = Formel;
    FixFeld = NkFeld;
    if FixFeld <> NkFeld;
    FixFeld += 1;
    endif;
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  3. #3
    Registriert seit
    May 2004
    Beiträge
    444
    Danke, habs mir fast gedacht dass man solche banalen Dinge nicht einfacher hinbekommt

  4. #4
    Registriert seit
    Jun 2001
    Beiträge
    1.978
    Bei berechnungen bei denen ich die nachkomastellen kenne,
    addiere ich immer 0,49999 ( bei 5 NK) dazu.
    dann geht kaufm. runden
    Robi

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.247
    Jo, das wäre dann einfach:

    FixFeld = Formel + 0,9..9; // Je nach Genauigkeit

    Leider besteht das Problem, dass Zwischenergebnisse hier ggf. ohne Nachkomma gerechnet werden. Also mal einfach ausprobieren.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  6. #6
    Registriert seit
    Aug 2001
    Beiträge
    2.876

    SQL-Funktion CEILING

    Hallo,

    in RPG gibt es diese Funktion nicht, wohl aber in SQL. Die Funktion CEILING oder CEIL rundet immer auf die nächste volle Zahl auf, also 1,00001 --> 2, 1 --> 1, -3,2 --> -3

    PHP-Code:
    C/EXEC SQL  Set :Ergebnis CEIL(Formel oder Zahl)
    C/END-EXEC 
    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

  7. #7
    Registriert seit
    May 2004
    Beiträge
    444
    Danke an Euch alle, viele Wege führen nach Rom ich hätte halt nur gern den direkten genommen

Similar Threads

  1. Wert aus CSV Datei
    By mk in forum IBM i Hauptforum
    Antworten: 9
    Letzter Beitrag: 21-12-06, 08:56
  2. Aufrunden auf die nächsten vollen 10 EUR
    By peter.kinne in forum NEWSboard Programmierung
    Antworten: 11
    Letzter Beitrag: 29-07-06, 10:24
  3. Können CLLE Module selbst einen Wert halten bzw. zurückgeben?
    By JonnyRico in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 25-04-06, 10:16
  4. Query - Text in Wert umwandeln??
    By Nickelär in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 02-12-05, 10:18
  5. Antworten: 3
    Letzter Beitrag: 03-02-05, 14:17

Berechtigungen

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