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: 227
Registriert: 01.06.2015, 10:16
Dank erhalten: 23 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: 3342
Registriert: 18.09.2004, 13:03
Wohnort: Hamburg
Dank erhalten: 209 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: 227
Registriert: 01.06.2015, 10:16
Dank erhalten: 23 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: 227
Registriert: 01.06.2015, 10:16
Dank erhalten: 23 mal
Ich bin: Entwickler/in


Zurück zu ABAP® Core

  Aktuelle Beiträge   
Tabellenüberschriften
vor 12 Stunden von Tron 7 Antw.
Adobe Forms - Download - Keine Seiten
vor 19 Stunden von a-dead-trousers 3 Antw.
gelöst UTF-8 mit Funktionsbaustein
Gestern von a-dead-trousers 4 Antw.
gelöst Fehler SAVE NOT ALLOWED bei F4IF_START_VALUE_REQUEST
Gestern von AdrianSchm 1 Antw.
SAP Logon bei Aufruf WebGUI
vor 2 Tagen von msfox 0 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.
gelöst Umwandeln SAPOffice URL in PDF
12.06.2018, 17:09 von Lucyalison 10 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