[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Dec 2003
    Beiträge
    89

    %float rundet falsch !!

    Hallo zusammen !

    Ich lese eine CSV-Datei auf der AS400 per ILE ein.
    Das klappt alles soweit !

    Problem :
    Wenn ich versuche mit %float einen numerischen Wert aus einem Alphafeld in ein numerisches Feld zu übertragen, dann kommt im numerischen Feld ein falsch gerundeter Wert an.

    Alpha '25,13' -> %float -> Num 25,12

    Unser Release ist V5R3

    Hat jemand ne Idee ??
    mfg
    Jogi

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Warum nutzt du nicht %DEC() ?
    Das Problem bei Float ist, dass die Zahlen nicht genau sondern nur ein Näherungswert sind.
    25,13 => 25,12999999978
    Bei der Übertragung nach Dezimal wird dann leider abgeschnitten und nicht gerundet.
    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
    Mar 2002
    Beiträge
    5.287
    Hallo,

    aber auch der rundet nicht, da gibt es dann noch round und mit H option resdecpos geht (im embedded SQL) endgültig die Würfelei los!!!

    Dieter Bender

    Zitat Zitat von Fuerchau
    Warum nutzt du nicht %DEC() ?
    Das Problem bei Float ist, dass die Zahlen nicht genau sondern nur ein Näherungswert sind.
    25,13 => 25,12999999978
    Bei der Übertragung nach Dezimal wird dann leider abgeschnitten und nicht gerundet.
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Rundung ist nicht erforderlich, wenn das Empfangsfeld genug NK definiert hat. In diesem Beispiel "myfield = %dec(mychar:11:2)"
    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

  5. #5
    Registriert seit
    Dec 2003
    Beiträge
    89
    Hallo nochmal !

    Laut meiner Hilfe erwartet %dec doch eine Zahl, oder ?

    Wie kann ich denn am einfachsten eine Zahl 25,13 in einem Textfeld, in eine numeriches Feld schreiben.

    Das Einlesen von CSV-Dateien wurde doch schon oft behandelt, da muss dieses Problem doch dauernd auftreten,oder?

    Gruss jogi

  6. #6
    Registriert seit
    May 2002
    Beiträge
    1.121
    Nein,

    %Dec und %DecH geht auch mit Alpha (Seit V5R1 ??)

    Alpha = 15,12



    PHP-Code:
    Eval Num = %DecHAlpha 52
    Gruß Ronald

  7. #7
    Registriert seit
    Mar 2005
    Beiträge
    74
    Warum nutzt Du nicht zum Einlesen der CSV-Datei den Befehl CPYFRMIMPF und kopierst die CSV-Datei damit direkt in eine DB-Tabelle?
    CPYFRMIMPF und CPYTOIMPF nutzt zum Import/Export CSV-Dateien (oder ähnlich aufgebaute Dateien).

    Gruß
    M.Withake

Similar Threads

  1. SFL - Ansicht falsch
    By svente in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 07-12-05, 16:02
  2. Teildatei-Attribute ÄnderungsDatum/-Uhrzeit falsch
    By COS in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 26-07-05, 13:57
  3. Systemwert xdayofweek falsch
    By emily in forum IBM i Hauptforum
    Antworten: 6
    Letzter Beitrag: 30-03-05, 10:05
  4. IBM 6400 SI(SLO) Sonderzeichen falsch
    By Unregistriert in forum NEWSboard Drucker
    Antworten: 1
    Letzter Beitrag: 17-01-05, 10:36
  5. Kennwort falsch, obwohl richtig
    By Kent in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 08-09-04, 09:06

Berechtigungen

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