gelöst exponentialzahl umwandeln


Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV

Moderatoren: Jan, Steff

gelöst exponentialzahl umwandeln

Beitragvon SaskuAc » 12.02.2018, 08:17

Hallo,

beim auslesen einer Excel-Datei bekomme ich leider hin und wieder eine exponentialzahl.
Aktuell schmeiße ich die Zeilen mit der Zahl einfach aus der Verarbeitung raus ... Nun hätte ich gerne einen Workaround..

Gibt es vielleicht eine Möglichkeit eine exponentialzahl in decimal oder generell umzuwandeln?

Danke euch.
SaskuAc
Specialist
 
Beiträge: 119
Registriert: 01.06.2015, 10:16
Dank erhalten: 12 mal
Ich bin: Entwickler/in

Sponsor

Alte ABAP-Entwicklerweisheit: Weißt du weder aus noch ein, baust du einen BADI ein

Re: exponentialzahl umwandeln

Beitragvon ralf.wenzel » 12.02.2018, 08:25

Das hat mich doch neulich schon wer gefragt.... Dem hab ich den Tipp 'MURC_ROUND_FLOAT_TO_PACKED'' gegeben.


Ralf
Bild Ralf WenzelHeuristika
SAP-Development • Datenschutzberatung
PublikationenUngarische NotationXing
ralf.wenzel
Top Expert
 
Beiträge: 2792
Registriert: 18.09.2004, 13:03
Wohnort: Hamburg
Dank erhalten: 138 mal
Ich bin: Freiberufler/in

Re: exponentialzahl umwandeln

Beitragvon SaskuAc » 12.02.2018, 08:57

okay.. hilft mir leider bisher nicht weiter. gibt mir 0 zurück:

Eckige klammern werden leider nicht richtig dargestellt .. also nicht wundern..
Code: Alles auswählen
* lt_test[ 1 ']-e ist  in diesem Fall 5,34143518518519E-02
DATA lv_temp TYPE f.
DATA lv_test TYPE p.
data lv_temp2 type string.
lv_temp2 = lt_test[ 1 ]-e.
replace all OCCURRENCES OF ',' in lv_temp2 with '.'.
lv_temp = lv_temp2.

CALL FUNCTION 'MURC_ROUND_FLOAT_TO_PACKED'
  EXPORTING
    if_float              = lv_temp
*    if_significant_places = 15
  IMPORTING
    ef_packed             = lv_test
*  EXCEPTIONS
*   overflow              = 1
*   others                = 2
  .
SaskuAc
Specialist
 
Beiträge: 119
Registriert: 01.06.2015, 10:16
Dank erhalten: 12 mal
Ich bin: Entwickler/in

Re: exponentialzahl umwandeln

Beitragvon SaskuAc » 12.02.2018, 10:35

Habe jetzt die Lösung... echt dämlich ..

Code: Alles auswählen
 
" <fs_uzeit> ist ein String mit der exponentialzahl
" lv_uzeit ist type syuzeit
" lv_temp type f
" lv_temp2 type p decimals 14 length 15 - ohne die decimals und length angabe schmeißt er mich raus ohne eine klare meldung was hier genau der Fehler ist
TRY.
          IF <fs_uzeit> IS ASSIGNED.
            REPLACE ALL OCCURRENCES OF ',' IN <fs_uzeit> WITH '.'.
            lv_uzeit = <fs_uzeit> * 24 * 60 * 60.
            ls_sptra-uzeit = lv_uzeit.
          ENDIF.
        CATCH cx_sy_conversion_no_number.
          TRY.
              lv_temp = <fs_uzeit>.
              lv_temp2 = lv_temp * 24 * 60 * 60.
              ls_sptra-uzeit = lv_temp2.
            CATCH cx_sy_conversion_overflow.
              ASSIGN COMPONENT ms_sp_mapping-sp_numbr OF STRUCTURE ls_excel TO FIELD-SYMBOL(<fs_numbr>).
              mv_wrong_sprta = abap_true.
          ENDTRY.
ENDTRY.
SaskuAc
Specialist
 
Beiträge: 119
Registriert: 01.06.2015, 10:16
Dank erhalten: 12 mal
Ich bin: Entwickler/in


Zurück zu ABAP® Core

  Aktuelle Beiträge   
Anzahl Treffer select-anweisung
vor 4 Stunden von wreichelt 3 Antw.
gelöst Datenbankabfrage
vor 5 Stunden von black_adept 1 Antw.
gelöst Disponentbezeichnung
vor 8 Stunden von cuncon 2 Antw.
Customizingtabelle ->Schlüsselfeld darf nicht leer sein
vor 10 Stunden von DeathAndPain 6 Antw.
gelöst Smartforms Dynamischer Textbaustein
vor 4 Stunden von Tron 4 Antw.

  Ähnliche Beiträge beta
Dezimalzahl in HEX umwandeln
15.10.2004, 07:09 von RiffRaff 4 Antw.
File in XML umwandeln
10.11.2006, 13:18 von khb 0 Antw.
Umwandeln SAPOffice URL in PDF
09.02.2018, 19:06 von Lucyalison 7 Antw.
char in num, und/oder int umwandeln
16.05.2008, 11:20 von BabsiCSC 32 Antw.
Sapscript in Adobe umwandeln
23.08.2012, 12:00 von Alex N. 0 Antw.

 

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder

Feedback ...?

Was können wir verbessern? Hinterlasse deine Kontaktdaten, wenn du eine direkte Antwort möchtest.

... Absenden!