Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Wertebereich von Single, Double, Real, Currency (https://www.delphipraxis.net/114673-wertebereich-von-single-double-real-currency.html)

ToFaceTeKilla 29. Mai 2008 10:57


Wertebereich von Single, Double, Real, Currency
 
Hiho zusammen,

in dem Programm an dem ich gerade arbeite, werden Daten aus einer SQL Datenbank geladen. Ich bin jetzt dabei, unterschiedliche Reaktionen auf unterschiedliche Typen umzusetzen. Dafür ordne ich erstmal für mich die Datentypen einander zu (tinyint zu byte usw.). Jetzt bin ich etwas Ratlos was die Fließkomma-Datentypen angeht (siehe Thread-Titel) und zwar frage ich mich ob die auch in den negativen Wertebereich gehen.
Weil in meiner D6-Hilfe steht nur:
Zitat:

Single 1.5 x 10^45 .. 3.4 x 10^38
Double 5.0 x 10^324 .. 1.7 x 10^308
Extended 3.6 x 10^4951 .. 1.1 x 10^4932
Currency 922337203685477.5808.. 922337203685477.5807
Real 5.0 x 10^-324 .. 1.7 x 10^308
Haben die da nur vor den ersten Zahlen das "-" vergessen oder was ist da los? :gruebel:

Danke schonmal

marabu 29. Mai 2008 11:25

Re: Wertebereich von Single, Double, Real, Currency
 
Hallo Felix,

die interne Darstellung der von dir zitierten Datentypen bringt nur bei ganzzahligen Typen einen nach Vorzeichen abweichenden Wertebereich mit sich. Bei den Fließkomma-Typen ist das Vorzeichen einfach ein Bit und der Wertebereich bleibt immer derselbe.

Grüße vom marabu

ToFaceTeKilla 29. Mai 2008 11:37

Re: Wertebereich von Single, Double, Real, Currency
 
Hallo Achim,

also heißt das quasi, dass diese Typen den selben Wertebereich wie angegeben auch in negativer Richtung abdecken?
Also im Prinzip müsste da noch ein Minus vor die jeweils erste Zahl in der Definition oder? Weil die erste Zahl ist ja vom Betrag her größer als die nach den "..", wie mir gerade auffällt.
Aufgefallen ist mir das ganze überhaupt erst, weil die Datentypen hier mit Minimum (-) und Maximum (+) angegeben werden.

Bin total verwirrt :?

Danke aber schonmal

Greetz TeKilla

gammatester 29. Mai 2008 12:18

Re: Wertebereich von Single, Double, Real, Currency
 
Zitat:

Zitat von ToFaceTeKilla
Hiho zusammen,

in dem Programm an dem ich gerade arbeite, werden Daten aus einer SQL Datenbank geladen. Ich bin jetzt dabei, unterschiedliche Reaktionen auf unterschiedliche Typen umzusetzen. Dafür ordne ich erstmal für mich die Datentypen einander zu (tinyint zu byte usw.). Jetzt bin ich etwas Ratlos was die Fließkomma-Datentypen angeht (siehe Thread-Titel) und zwar frage ich mich ob die auch in den negativen Wertebereich gehen.
Weil in meiner D6-Hilfe steht nur:
Zitat:

Single 1.5 x 10^45 .. 3.4 x 10^38
Double 5.0 x 10^324 .. 1.7 x 10^308
Extended 3.6 x 10^4951 .. 1.1 x 10^4932
Currency 922337203685477.5808.. 922337203685477.5807
Real 5.0 x 10^-324 .. 1.7 x 10^308
Haben die da nur vor den ersten Zahlen das "-" vergessen oder was ist da los? :gruebel:

Danke schonmal

Die und Du haben Minuszeichen vergessen, richtig heißt es

Zitat:

Real48 2.9 x 10^-39 .. 1.7 x 10^38 11-12 6
Single 1.5 x 10^-45 .. 3.4 x 10^38 7-8 4
Double 5.0 x 10^-324 .. 1.7 x 10^308 15-16 8
Extended 3.6 x 10^-4951 .. 1.1 x 10^4932 19-20 10
Comp -2^63+1 .. 2^63 -1 19-20 8
Currency -922337203685477.5808.. 922337203685477.5807
Für die Floatingpointzahlen ist nur der positive Bereich angegeben, der negative ist wie schon bemerkt symmetrisch dazu. Außerdem ist natürlich immer die 0 dabei. Man beachte die negativen Exponenten für die jeweils untere Grenze.

Gruß Gammatester

ToFaceTeKilla 29. Mai 2008 12:27

Re: Wertebereich von Single, Double, Real, Currency
 
Ah, jetzt hab ichs gerafft :-D
Danke euch :thumb:

himitsu 29. Mai 2008 22:35

Re: Wertebereich von Single, Double, Real, Currency
 
oder nochmal am Beispiel des Single;

Single 1.5 x 10^-45 .. 3.4 x 10^38

Code:
größter negativer Wert   = -3.4 x 10^38  = -3.4e38  = -34000000[color=silver]...[/color]000
kleinester negativer Wert = -1.5 x 10^-45 = -1.5e-45 = -0,00000000[color=silver]...[/color]00015
Null                     = 0                        = 0
kleinester positiver Wert = 1.5 x 10^-45  = 1.5e-45  = 0,00000000[color=silver]...[/color]00015
größter positiver Wert   = 3.4 x 10^38   = 3.4e38   = 34000000[color=silver]...[/color]000


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:14 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz