ValF() ??
- The_Dark_Zim-.-
- Beiträge: 372
- Registriert: 18.03.2008 16:53
ValF() ??
Hey ho,
eine kurze Frage zu ValF()
Warum wird aus ValF("787878778e-10") = "0.07878787815571",
müsste das nicht eigentlich "0.0787878778" werden?
Gruß Zim
eine kurze Frage zu ValF()
Warum wird aus ValF("787878778e-10") = "0.07878787815571",
müsste das nicht eigentlich "0.0787878778" werden?
Gruß Zim
PB: 5.xx LTS x86/x64 | WIN: 10 Pro x64, Linux Mint x64
- NicTheQuick
- Ein Admin
- Beiträge: 8809
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
Re: ValF() ??
Eine altbekannte Frage. Siehe Wikipedia, genauer gesagt hier.
- The_Dark_Zim-.-
- Beiträge: 372
- Registriert: 18.03.2008 16:53
Re: ValF() ??
-.- doofe Computer. Aber das muss man umgehen können Oo. Immerhin ist das richtige Ergebniss aus "WolframAlpha" und da sitzt sicher kein Mensch am rechnen 

PB: 5.xx LTS x86/x64 | WIN: 10 Pro x64, Linux Mint x64
Re: ValF() ??
mal ne frage wieso ist das ergebniss von valf genauer als das von vald?
Code: Alles auswählen
Debug ValF("787878778e-10")
Debug ValD("787878778e-10")
Debug 0.07878787815571
- The_Dark_Zim-.-
- Beiträge: 372
- Registriert: 18.03.2008 16:53
Re: ValF() ??
Mehr platz für Fehler
keine ahnung

keine ahnung
PB: 5.xx LTS x86/x64 | WIN: 10 Pro x64, Linux Mint x64
Re: ValF() ??
sry hab nen fehler gemacht
hab die "" vergessen
so klappts
hab die "" vergessen
so klappts
Debug ValD("787878778e-10")
Debug "0.0787878778"
- The_Dark_Zim-.-
- Beiträge: 372
- Registriert: 18.03.2008 16:53
Re: ValF() ??
Okey "WolframAlpha" rechnet auch nur bei Zahlen unter 17 Ziffern...
PB: 5.xx LTS x86/x64 | WIN: 10 Pro x64, Linux Mint x64
Re: ValF() ??
WolframAlpha oder besser Mathematica benutzen auch Floats/Doubles nur intern für schnelle Rechnungen.
Bei Sachen die ausgegeben werden, wird eine andere Klasse von Zahlen verwendet, welche Dizimalzahlen auf beliebig genaue Stellen darstellen kann:
WolframAlpha: N[1/7,1000]
Dort kann ich sagen er soll 1/7 wirklich auf 1000 stellen berechnen.
Für ProgrammierinterneSachen ist eine solche genauigkeit *für n Arsch*
Bei Sachen die ausgegeben werden, wird eine andere Klasse von Zahlen verwendet, welche Dizimalzahlen auf beliebig genaue Stellen darstellen kann:
WolframAlpha: N[1/7,1000]
Dort kann ich sagen er soll 1/7 wirklich auf 1000 stellen berechnen.
Für ProgrammierinterneSachen ist eine solche genauigkeit *für n Arsch*
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Re: ValF() ??
Strings nehme ich an?STARGÅTE hat geschrieben:WolframAlpha oder besser Mathematica benutzen auch Floats/Doubles nur intern für schnelle Rechnungen.
Bei Sachen die ausgegeben werden, wird eine andere Klasse von Zahlen verwendet, welche Dizimalzahlen auf beliebig genaue Stellen darstellen kann:
Re: ValF() ??
Nein, zumindest nicht im Speicher.
Mag sein, dass sie die Zahl am ende als String ausgeben lassen.
Jedoch wird die Zahl 1/7 mit 1000 Stellen als anhäufung von Longs/Quads gespeichert ...
zB gibt mit der Speicherverbrauch 472 Bytes zurück. (Statt 1000 noch was, was der String an sich hätte)
Anders Beispiel:
Lasse ich Mathematica 2^8000 errechnen, erhalte ich eine Länge von 1032 Bytes ...
Das lässt darauf schließen, das hier Byte-Arrays oder Long-Array ... benutzt werden:
2^8000 = 4^4000 = 16^2000 = 256^1000
also 1000 Bytes für die 256er und 32Byte als Header oder so....
Mag sein, dass sie die Zahl am ende als String ausgeben lassen.
Jedoch wird die Zahl 1/7 mit 1000 Stellen als anhäufung von Longs/Quads gespeichert ...
zB gibt mit der Speicherverbrauch 472 Bytes zurück. (Statt 1000 noch was, was der String an sich hätte)
Anders Beispiel:
Lasse ich Mathematica 2^8000 errechnen, erhalte ich eine Länge von 1032 Bytes ...
Das lässt darauf schließen, das hier Byte-Arrays oder Long-Array ... benutzt werden:
2^8000 = 4^4000 = 16^2000 = 256^1000
also 1000 Bytes für die 256er und 32Byte als Header oder so....
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr