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: 159
Registriert: 01.06.2015, 10:16
Dank erhalten: 15 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: 3048
Registriert: 18.09.2004, 13:03
Wohnort: Hamburg
Dank erhalten: 169 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: 159
Registriert: 01.06.2015, 10:16
Dank erhalten: 15 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: 159
Registriert: 01.06.2015, 10:16
Dank erhalten: 15 mal
Ich bin: Entwickler/in


Zurück zu ABAP® Core

  Aktuelle Beiträge   
Steuerkommandos in Adobe Forms
vor 8 Stunden von ewx 0 Antw.
Bilder aus SMW0 im Dynpro nutzen?
vor 13 Stunden von newone 0 Antw.
OLE (Excel): GET PROPERTY OF cell 'Value' feld
vor 14 Stunden von heiko-77 3 Antw.
HUMV4-IDENT Handling Unit Tabelle
Gestern von ewx 1 Antw.
Transaktion für Pflege Custom. Tabelle
Gestern von DeathAndPain 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.
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

cron