Clever-Excel-Forum

Normale Version: Exponente als Dezimal umwandeln
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

Ich möchte folgende Zahl als Dezimalzahl umwandeln:

6,40328E+17 

Jemand ne Idee wie ich dies mit ner Formel versehen kann?

Danke 

Grüße
Robert
Hallo,

liegt die Zahl als Text vor oder ist das nur so formatiert?

Wenn die Zahl als Text in Zelle A1 steht: =--A1

Aber Achtung! Excel kann Zahlen nur bis 15 Stellen korrekt anzeigen (und auch damit korrekt rechnen), alles was danach kommt wird als 0 aufgefüllt
Moin!
Wenn es wirklich eine Zahl (in Exponential-Schreibweise) ist, brauchst Du doch nur das Zahlenformat auf 0 ändern?

Gruß Ralf
Genau das ist das Problem. 
Formatieren als Zahl kommen drei Nullen hinten raus.
Das ist kein Problem, sondern die Anzeige- und Rechengenauigkeit von Excel.
Calc.exe hat eine höhere Rechengenauigkeit, muss - im Ggs. zu Excel - aber auch nur eine einzige Berechnung durchführen.

Wir haben ja in der Schule auch nicht gelernt, dass PI nach der 14. Nachkommastelle "aufhört":
A
13,1415926535897900000

ZelleFormatWert
A10,00000000000000000003,14159265358979

ZelleFormel
A1=PI()

[attachment=45040]
Kannst du es mir anhand von meinem Beispiel zeigen?
Ich sehe kein Beispiel, sondern nur einen Text in der Threaderöffnung.
Woher kommt der Wert?
In VBA kann man mit 28 Stellen rechnen:
(im Bereich +/-79.228.162.514.264.337.593.543.950.335)
Man kann einer Variablen aber nicht den (eigentlich benötigten) Datentyp Decimal zuweisen, sondern muss den Umweg über Variant und CDec() gehen.
Die Ausgabe in Excel bewirkt dann wieder das "Abschneiden", deshalb kann man sich hier ausschließlich mit Text behelfen.

Wie Du vielleicht siehst, ist das alles andere als Anfängerwissen.

Und hier mal aus meinem Fundus:
Bilden des Kehrwerts von PI

ABC
1DividentDivisorErgebnis
213,14159265358979000,3183098861837909996626357358
313,14159265358979000,3183098861837910000000000000

ZelleFormel
B2=PI()
C2=DivisionAlsString(A2;B2)
B3=PI()
C3=A3/B3

Die zugehörige UDF ist extrem überschaubar:
Function DivisionAlsString(Zahl1 As Double, Zahl2 As Double) As String
'zur Übergabe ans Tabellenblatt
'String, nicht zum weiterrechnen geeignet
DivisionAlsString = CStr(CDec(Zahl1) / CDec(Zahl2))
End Function
@RPR63

interessant, wo lernt man denn so etwas?

Es geht genauso mit Multiplikation.

Danke
(14.09.2022, 12:25)Fennek schrieb: [ -> ]interessant, wo lernt man denn so etwas?

In Foren!  19

Ein wenig zur Historie:
Ich wollte mal in Excel nachrechnen, wie viele Reiskörner sich auf dem 64. Feld des Schachbretts befinden, wenn die Anzahl (beginnend mit einem Reiskorn auf dem ersten Feld) sich pro Feld verdoppelt.

Dann begab ich mich auf die Suche und landete schnell beim (imaginären) Datentyp Decimal und der internen Umwandlung mittels CDec()
Function Schachbrett() As String
Dim tmpPotenz As Variant
tmpPotenz = CDec(2 ^ 32)
Schachbrett = Format(CStr(CDec(tmpPotenz * tmpPotenz) - 1), "#,##0")
End Function

A
1falsche Zahl
218.446.744.073.709.600.000
3
4korrekte Zahl
518.446.744.073.709.551.615

ZelleFormel
A2=2^64-1
A5=schachbrett()

Gruß Ralf