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: 146
Registriert: 01.06.2015, 10:16
Dank erhalten: 14 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
ralf.wenzel
Top Expert
 
Beiträge: 2971
Registriert: 18.09.2004, 13:03
Wohnort: Hamburg
Dank erhalten: 161 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: 146
Registriert: 01.06.2015, 10:16
Dank erhalten: 14 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: 146
Registriert: 01.06.2015, 10:16
Dank erhalten: 14 mal
Ich bin: Entwickler/in


Zurück zu ABAP® Core

  Aktuelle Beiträge   
Lieferantenkonsignation
vor 6 Minuten von SAP_ENTWICKLER 0 Antw.
Reuse ALV makieren
vor 16 Stunden von a-dead-trousers 1 Antw.
Tabelle TSL1D
vor 17 Stunden von JohnLocklay 0 Antw.
Replace Regex
vor 52 Minuten von black_adept 4 Antw.
Einer dynamisch ermittelten Tabelle Werte zuweisen
vor 18 Stunden von a-dead-trousers 1 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: Bing [Bot]