Avatar billede jytte Nybegynder
25. oktober 2005 - 15:59 Der er 8 kommentarer og
1 løsning

omkring float

Jeg har en tabel:

create table punkt(
    punkt_id int identity,
    testopgave_id int,
    x float,
    y float
    primary key(punkt_id)
)

jeg laver en insert:

INSERT INTO punkt ( testopgave_id ,x ,y ) VALUES ( 3727 ,11.1 ,12.2 )

Jeg kigger i databasen og der står

punkt_id  testopgave_id  x    y
55        3727          11.1  12.199999999999999

Hvad skal jeg gøre for at det er 12.2 der kommer til at stå i tabellen ?
Avatar billede arne_v Ekspert
25. oktober 2005 - 16:02 #1
droppe FLOAT og bruge DECIMAL(14,2)
Avatar billede arne_v Ekspert
25. oktober 2005 - 16:02 #2
eller leve med det som det er

:-)
Avatar billede jytte Nybegynder
25. oktober 2005 - 16:04 #3
hvad er decimal(14,2) ?

og har du en forklaring af hvad den nærmere betydning af datatyperne float og decimal ?
Avatar billede arne_v Ekspert
25. oktober 2005 - 16:08 #4
decimal(14,2) er et tal med op til 14 cifre og altid 2 cifre efter decimal punktum/komma

float er gemt som (1 + b1 * 1/2 + b2 * 1/4 + b3 * 1/8 + ...) * 2 ^ a (hvor b1,b2,b3,...
er enten 0 eller 1)
Avatar billede arne_v Ekspert
25. oktober 2005 - 16:13 #5
float kan gemme både meget store og meget små tal uden at fylde ret meget

til gengæld er den absolutte præcision meget varierende

decimal(14,2) er jo per definition +/- 0.005

men en float på 10^300 vil have en usikkerhed +/- 10^285 og en float på
10^-300 vil have en usikkerhed på 10^-315
Avatar billede jytte Nybegynder
26. oktober 2005 - 08:51 #6
Tak for forklaringen (og læg et svar)
Avatar billede arne_v Ekspert
26. oktober 2005 - 10:36 #7
svar
Avatar billede jytte Nybegynder
30. oktober 2005 - 19:40 #8
Pointen i ovenstående må vist være at afhængig af om man bruger decimal eller binær repræsentation er der forskel på hvilke tal der kan repræsenteres eksakt.

0.1 kan repræsenteres eksakt i decimal repræsentation men ikke i binær repræsentation
Avatar billede arne_v Ekspert
30. oktober 2005 - 19:42 #9
det er en af dem
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester