/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
Datatyper Firebird
Fra : Ukendt


Dato : 03-12-07 22:33

Hej.

Hvad er reelt forskellen på datatyperne float og decimal i firebird. Jeg kan
sagtens læse mig til det, øjnene kan sagtens se, hvad der står, problemet
opstår, når der skal ske en aktivitet med at _forstå_ forskellen.

Helt konkret drejer det sig om beløb i feltet - hvad er mest oplagt at bruge



 
 
Torben Simonsen (03-12-2007)
Kommentar
Fra : Torben Simonsen


Dato : 03-12-07 23:19

"Michael Sørensen" <.> writes:

> Hej.
>
> Hvad er reelt forskellen på datatyperne float og decimal i firebird. Jeg kan
> sagtens læse mig til det, øjnene kan sagtens se, hvad der står, problemet
> opstår, når der skal ske en aktivitet med at _forstå_ forskellen.
>
> Helt konkret drejer det sig om beløb i feltet - hvad er mest oplagt at bruge

Til beløb skal du helt klart bruge DECIMAL eller NUMERIC
(fx. DECIMAL(18,2) eller NUMERIC(18,2) - eller en mindre
værdi end 18 for betydende cifre, hvis du ikke forventer,
at dine beløb bliver så store .

Forskellen i forhold til FLOAT er, at du med FLOAT kan få
nogle spøjse afrundingsfejl, når du begynder at lade Firebird
regne på beløbene (også ved så tilsyneladende simple operationer
som summering og lignende). NUMERIC og DECIMAL er såkaldte
eksakte datatyper - der er altid præcis to cifre efter kommaet
i ovenstående eksempler, og der går derfor ikke rod i dit
øre-regnskab, når du begynder at lægge sammen og trække fra.

FLOAT og DOUBLE PRECISION er mest egnet til data, som af natur
spænder over et interval af både meget store og meget små tal.
Hvis du f.eks. skal kunne gemme både 0,00000000000001 og
100000000000 i den samme kolonne, så kan det ikke lade sig
gøre med en NUMERIC eller DECIMAL, men det kan det med en
FLOAT eller DOUBLE PRECISION.

--
-- Torben.

Thorbjørn Ravn Ander~ (03-12-2007)
Kommentar
Fra : Thorbjørn Ravn Ander~


Dato : 03-12-07 23:23

"Michael Sørensen" <.> writes:

> Hvad er reelt forskellen på datatyperne float og decimal i firebird. Jeg kan
> sagtens læse mig til det, øjnene kan sagtens se, hvad der står, problemet
> opstår, når der skal ske en aktivitet med at _forstå_ forskellen.
>
> Helt konkret drejer det sig om beløb i feltet - hvad er mest oplagt at bruge


Ud fra hvad jeg hurtig kan læse er FLOAT 32-bit enkelt præcision, og
DOUBLE PRECISION 64-bit dobbelt præcision. Flydende kommatal
består af X bit hvoraf nogen fortolkes som mantissen M og eksponenten
E, således at det tilsvarende tal er M*2^E. Antallet af bit der
bruges til hhv M og E angiver hvor præcis en angivelse du kan lave med
den pågældende repræsentation.

Til beløb vil du have noget der muliggør en eksakt repræsentation af
værdien - dvs ikke noget der har flydende komma. Kig i stedet på
DECIMAL(N, M) som giver N cifre heraf M efter kommaet.
--
Thorbjørn Ravn Andersen

Peter Lykkegaard (03-12-2007)
Kommentar
Fra : Peter Lykkegaard


Dato : 03-12-07 23:29

Michael Sørensen wrote:

> Hvad er reelt forskellen på datatyperne float og decimal i firebird.
> Jeg kan sagtens læse mig til det, øjnene kan sagtens se, hvad der
> står, problemet opstår, når der skal ske en aktivitet med at _forstå_
> forskellen.
Forskellen er 3,14 versus 22/7

Måske sadt lidt på spidsen :)

- Peter

--
Hi! I'm a .signature *virus*!
Copy me into your ~/.signature to help me spread!



Søg
Reklame
Statistik
Spørgsmål : 177458
Tips : 31962
Nyheder : 719565
Indlæg : 6408169
Brugere : 218881

Månedens bedste
Årets bedste
Sidste års bedste