Kleines Beispiel über DECIMAL und FLOAT

Oftmals fragt man sich, wann DECIMAL und wann FLOAT verwendet werden soll; bzw. ob und wenn Ja, wofür FLOAT überhaupt verwendet werden soll. Eine allgemeingültige verbindliche Antwort hierauf gibt es wahrscheinlich nicht. Vielmehr hängt dies von den jeweiligen Anforderungen ab. Festhalten lässt sich aber, daß überall dort, wo ein hoher Anspruch an Genauigkeit bei Zahlen und Berechnungen herrscht, DECIMAL verwendet werden sollte. Genaugenommen fällt mir jetzt nur ein Gebiet ein, wo FLOAT eher angebracht scheint: Astronomie, bzw, überall dort, wo mit extrem grossen oder kleinen Zahlen gerechnet wird.

...

SQL Server MVP Steve Kass hat ein eindrucksvolles Beispiel über die Unterschiede zwischen beiden Datentypen bei Multiplikation in den englischen Newsgroups gepostet, welches hier mit seinem Einverständnis wiedergegeben wird.

declare @a decimal(18,4)
set @a = 0.0003
select
sum(a)*sum(a)*100,
100*sum(a)*sum(a)
from (
select @a a
union all
select @a
) x
go

declare @a float
set @a = 0.0003
select
sum(a)*sum(a)*100,
100*sum(a)*sum(a)
from (
select @a a
union all
select @a
) x
go

                                                                                 
---------------------------------------- ----------------------------------------
.000000                                  .000036

(1 row(s) affected)

                                                                                 
----------------------------------------------------- ---------------------------
3.5999999999999994E-5                                 3.5999999999999994E-5

(1 row(s) affected)
Noch kein Feedback
Einen Kommentar hinterlassen

Ihre E-Mail-Adresse wird nicht auf dieser Seite angezeigt.
SchlechtExzellent
(Zeilenumbrüche werden zu <br />)
(For my next comment on this site)
(Allow users to contact me through a message form -- Your email will not be revealed!)
Dies ist ein Captcha Bild. Es wird benutzt, um Massenzugriffe von Robotern zu verhindern.
Bitte gib die Zeichen des obigen Bildes ein. (Groß/Kleinschreibung ist wichtig)
Trackback-Adresse für diesen Eintrag
Dies ist ein Captcha Bild. Es wird benutzt, um Massenzugriffe von Robotern zu verhindern.
Bitte gib die Zeichen des obigen Bildes ein. (Groß/Kleinschreibung ist wichtig)