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)