Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

dbCurrency und dbDouble

5 views
Skip to first unread message

Lothar Geyer

unread,
May 10, 2010, 6:12:25 AM5/10/10
to
Was ist eigentlich der Unterschied zwischen diesen beiden Datentypen in
der Jet-Maschine und beim SQLServer?

Lothar Geyer

Peter Fleischer

unread,
May 10, 2010, 8:32:40 AM5/10/10
to
"Lothar Geyer" <Lothar...@EDV-Berater-Online.de> schrieb im Newsbeitrag
news:84q4fs...@mid.individual.net...

> Was ist eigentlich der Unterschied zwischen diesen beiden Datentypen in
> der Jet-Maschine und beim SQLServer?

Hi Lothar,
beim SQL Server gibt es money und decimal. Beide Typen sind ganze Zahlen mit
definierter Kommastelle. Dagegen ist Double eine Gleitkommazahl mit
begrenzter Mantissenlᅵnge, was zu Rundungsfehlern beim Konvertieren auf eine
andere Basis (z.B. dezimal) fᅵhren kann. Diese Rundungsfehler kᅵnnen gerade
bei Valuta zu nicht erwᅵnschten Nebenwirkungen fᅵhren.

--
Viele Gruesse

Peter

Peter G�tz

unread,
May 10, 2010, 11:07:21 AM5/10/10
to
Hallo Lothar,

> Was ist eigentlich der Unterschied zwischen diesen beiden Datentypen in
> der Jet-Maschine und beim SQLServer?

Im Gegensatz zu Double, einem Fliesskommatyp, ist
Currency eigentlich ein Ganzzahltyp.
z.B. wird der Wert 1,5 einfach mit 10.000 multipliziert und
dieses Ganzzahlergebnis gespeichert.
Beim Lesen wird der Ganzzahlwert wieder durch
10.000 dividiert und man erh�lt so wieder das
richtige Ergebnis. Damit lassen sich Werte mit bis zu
4 Nachkommastellen darstellen. M�gliche Rundungsfehler
wie sie bei den IEEE-Gleitkommatypen entstehen k�nnen
werden damit vermieden.

Gru� aus St.Georgen
Peter G�tz
www.gssg.de (mit VB-Tipps u. Beispielprogrammen)


Lothar Geyer

unread,
May 10, 2010, 11:52:39 AM5/10/10
to
Hallo,

Danke fᅵr Eure Antworten. Irgendwie habe ich nirgendwo definitiv
gefunden, wie die interne Darstellung ist. Wenn ich Euch richtig
verstanden habe, ist das also ein Long, das lediglich bei Ein- bzw.
Ausgabe entsprechend "um-"interpretiert wird und ansonsten wie ein Long
behandelt wird.

Oder gibt es gesonderte Maschinen-Befehle fᅵr diesen Datentyp, wie das
bei den IBM/Univac usw.-Mainframes der Fall war / ist?

Lothar Geyer

Dieter Strassner

unread,
May 10, 2010, 12:09:53 PM5/10/10
to
Hallo Lothar,

> Danke fᅵr Eure Antworten. Irgendwie habe ich nirgendwo definitiv
> gefunden, wie die interne Darstellung ist. Wenn ich Euch richtig
> verstanden habe, ist das also ein Long, das lediglich bei Ein- bzw.
> Ausgabe entsprechend "um-"interpretiert wird und ansonsten wie ein
> Long behandelt wird.

Naja, ich weiᅵ nicht ob Du Peter richtig verstanden hast: Fᅵr dich als
programiererer ist ein Wert mit maximal 4 NK, gleichgᅵltig wie es
systemintern gehandhabt wird.
Der Wertebereich von +/- 922.337.203.685.477,5807 ist ja auch "wenig
grᅵᅵer" als 32-Bit Long von VB6 (Currency belegt 8 Bytes)

> Oder gibt es gesonderte Maschinen-Befehle fᅵr diesen Datentyp, wie das
> bei den IBM/Univac usw.-Mainframes der Fall war / ist?

Nein, die zeiten sind vorbei. Die Werte werden Dir immer "frisch aufbereitet
serviert". Es gibt keine Extra Befehle dazu.
Oder hast Du vor, die Bits & Byts eine Access.Mdb auseinander zu nehmen? :-)

--

Viele Grᅵᅵe

Dieter


Rᅵckfragen bitte nur in die Newsgroup!

EDV-Kommunikation Strassner e.K.
68623 Lampertheim
Internet: www.strassner.biz

Lothar Geyer

unread,
May 10, 2010, 1:55:57 PM5/10/10
to
Hallo Dieter,

Am 10.05.2010 18:09, schrieb Dieter Strassner:
> Hallo Lothar,
>
>> Danke fᅵr Eure Antworten. Irgendwie habe ich nirgendwo definitiv
>> gefunden, wie die interne Darstellung ist. Wenn ich Euch richtig
>> verstanden habe, ist das also ein Long, das lediglich bei Ein- bzw.
>> Ausgabe entsprechend "um-"interpretiert wird und ansonsten wie ein
>> Long behandelt wird.
>
> Naja, ich weiᅵ nicht ob Du Peter richtig verstanden hast: Fᅵr dich als
> programiererer ist ein Wert mit maximal 4 NK, gleichgᅵltig wie es
> systemintern gehandhabt wird.

Das ist mir schon klar. Trotzdem interessiert es mich halt, wie das
intern gespeichert und verarbeitet wird.

> Der Wertebereich von +/- 922.337.203.685.477,5807 ist ja auch "wenig
> grᅵᅵer" als 32-Bit Long von VB6 (Currency belegt 8 Bytes)
>
>> Oder gibt es gesonderte Maschinen-Befehle fᅵr diesen Datentyp, wie das
>> bei den IBM/Univac usw.-Mainframes der Fall war / ist?
>
> Nein, die zeiten sind vorbei. Die Werte werden Dir immer "frisch
> aufbereitet serviert". Es gibt keine Extra Befehle dazu.
> Oder hast Du vor, die Bits & Byts eine Access.Mdb auseinander zu nehmen?
> :-)

Nᅵ, habe ich nicht. Ich habe aber schon mit Datenbanken gearbeitet, wo
die interne Struktur genau dokumentiert war - und auch ausgelesen werden
konnte.

Manchmal ist es schon ganz gut, wenn man etwas mehr weiᅵ, als unbedingt
notwendig. Deshalb meine Frage.

Lothar Geyer

0 new messages