Autor Beitrag
AXMD
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 4006
Erhaltene Danke: 7

Windows 10 64 bit
C# (Visual Studio 2019 Express)
BeitragVerfasst: Fr 11.03.05 23:35 
N'Abend :)!

Kurze Frage: kann mir viell. jemand sagen, welche Vorteile/Nachteile die Verwendung von Extended anstelle von Double bringt? Der größere Wertebereich ist natürlich nett, aber leidet die Performance darunter? Oder die Genauigkeit?

AXMD
EUOCheffe
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 124



BeitragVerfasst: Sa 12.03.05 00:25 
Vorteile:
-Höhere Genauigkeit dank der zusätzlichen 12 Bit in der Mantisse
-Etwas höherer Wertebereich dank der zusätzlichen 4 Bit im Exponenten (aber wer braucht das schon?)

Nachteile:
-Schlechtere Portierbarkeit für andere Plattformen (z.B. wenn in Datei oder Datenbank gespeichert)

Die Performance wird wohl kaum gross darunter leiden, im schlimmsten Fall proportional zur grösseren Genauigkeit, würd ich mal behaupten. Wenn's so genau wie möglich sein muss, dann ist Extended sicher die beste Wahl. Floating Point ist Floating Point. Wegen den paar zusätzlichen Bits werden die Funktionen dadurch kaum langsamer werden.

Zitat:
Die Nummer, die Sie gewählt haben, ist imaginär. Drehen Sie Ihr Telefon um 90° und versuchen Sie es erneut


Geil! Der ist wirklich gut! :)
AXMD Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 4006
Erhaltene Danke: 7

Windows 10 64 bit
C# (Visual Studio 2019 Express)
BeitragVerfasst: Sa 12.03.05 09:51 
user profile iconEUOCheffe hat folgendes geschrieben:


Zitat:
Die Nummer, die Sie gewählt haben, ist imaginär. Drehen Sie Ihr Telefon um 90° und versuchen Sie es erneut


Geil! Der ist wirklich gut! :)


Wie heißt's so schön? Schule verblödet ;) In der Schule rechnen wir nämlich Tag ein Tag aus komplex ;)

Danke für deine Antwort; ich glaube, ich bleib bei Double

AXMD
wdbee
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 628
Erhaltene Danke: 1



BeitragVerfasst: Sa 12.03.05 10:21 
Extended ist das Format, mit dem die FPU intern arbeitet. Bei entsprechenden Programmen kann es schneller sein, alles in Extended zu handeln, weil dann nicht immer wieder zwischen Double und Exteneded umgewandelt werden muss.
AXMD Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 4006
Erhaltene Danke: 7

Windows 10 64 bit
C# (Visual Studio 2019 Express)
BeitragVerfasst: Sa 12.03.05 10:25 
user profile iconwdbee hat folgendes geschrieben:
Extended ist das Format, mit dem die FPU intern arbeitet. Bei entsprechenden Programmen kann es schneller sein, alles in Extended zu handeln, weil dann nicht immer wieder zwischen Double und Exteneded umgewandelt werden muss.


Und in welchen Fällen ist das so?

AXMD
wdbee
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 628
Erhaltene Danke: 1



BeitragVerfasst: Sa 12.03.05 10:34 
Wenn viele Fließkommazahlen verwendet werden und deshalb die paar Register der FPU nicht ausreichen, um alles per Register abzuarbeiten. Ob das in einem konkreten Fall etwas bringt kann man am besten durch einen Test (Scheife mit Zeitmessung) herausfinden. Dazu einfach einen eigenen Typ TMyReal = Double bzw. Extended definieren und im Programm verwenden. Dann lässt sich das ganz schnell prüfen.

Extended ist immer sinnvoll, wenn die Fehlerfortpflanzung eine Rolle spielt, also z. B. bei hydraulischen Simulationen von Kanalnetzen.
AXMD Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 4006
Erhaltene Danke: 7

Windows 10 64 bit
C# (Visual Studio 2019 Express)
BeitragVerfasst: Sa 12.03.05 10:37 
user profile iconwdbee hat folgendes geschrieben:
Extended ist immer sinnvoll, wenn die Fehlerfortpflanzung eine Rolle spielt, also z. B. bei hydraulischen Simulationen von Kanalnetzen.


Naja, wenn ich die Ergebnisse von meinem Programm mit denen von meinem Voyage (Taschenrechner) vergleiche, sind da teilweise Ergebnisse, die sich schon in der dritten Dezimalstelle unterscheiden - wobei die Zahl vor dem Komma einstellig ist :?

AXMD
wdbee
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 628
Erhaltene Danke: 1



BeitragVerfasst: Sa 12.03.05 10:54 
Da gibt es doch die alte Frage: Wenn man sehr viele Fließkommazahlen addieren muss, spielt es dann eine Rolle wie ich die Zahlen addiere? Variante 1: Zahlen addieren wie sie kommen. Variante 2: Zahlen nach Größe sortieren und mit den großen anfangen zu addieren. Variante 3: Zahlen nach Größe sortieren und mit den kleinen anfangen zu addieren.
Welche Ergebnis ist am genauesten, welches liegt am weitesten vom wahren Wert weg?
AXMD Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 4006
Erhaltene Danke: 7

Windows 10 64 bit
C# (Visual Studio 2019 Express)
BeitragVerfasst: Sa 12.03.05 10:56 
user profile iconwdbee hat folgendes geschrieben:
Da gibt es doch die alte Frage: Wenn man sehr viele Fließkommazahlen addieren muss, spielt es dann eine Rolle wie ich die Zahlen addiere? Variante 1: Zahlen addieren wie sie kommen. Variante 2: Zahlen nach Größe sortieren und mit den großen anfangen zu addieren. Variante 3: Zahlen nach Größe sortieren und mit den kleinen anfangen zu addieren.
Welche Ergebnis ist am genauesten, welches liegt am weitesten vom wahren Wert weg?


Und was ist die Antwort?

AXMD
wdbee
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 628
Erhaltene Danke: 1



BeitragVerfasst: Sa 12.03.05 11:02 
Negative Werte seien mal ausgeschlossen, dann gilt: Unsortiert liegt in der Mitte.
Beginnend mit den großen Zahlen liefert den größten Fehler.
Der Grund ist die endliche Menge an Kommastellen. Je größer die Zahl wird, umso weniger Bits stehen für die Kommastellen zur Verfügung. Addiere ich also erst die kleinen Zahlen, dann habe ich eine höhere Genauigkeit, weil die Summe länger klein bleibt.