14. september 2004 - 13:02Der er
15 kommentarer og 1 løsning
Access tildeler selv ekstra decimaler
Er der en venlig sjæl, som kan fortælle mig (eller finde et link på MSDN'en, som forklarer) hvorfor Access nogle gange sætter en lang række decimaler på helt simple tal og beregninger.
Et eks: En funktion, som ser således ud:
Public Function geta() As Single geta = 2.4 End Function
En forespørgsel, som har et felt, som ser således ud: A: geta()
resultat: Hele kolonnen viser tallet 2,4000000954
Hvor hel.... kommer de sidste 000000954 fra???
Det samme gør sig gældende, hvis man dropper funktionen og bare laver en kolonne i forespørgslen som hedder: A: CSng("2,4")
Samme resultat: 2,4000000954
Hvordan slipper man for disse decimaler (og jeg snakker ikke om at 'formattere dem væk')
Så er det ligesom med konen, der er visse unoder, som bare ikke kan rettes ;0)
Dette er et problem i alle programmeringssprog, da det skyldes måden tal omdannes på fra vores ti-talssystem og til computerens binære talsystem... 8-(
Lars-> Tak til dig også, forøvrigt. Jeg kan godt se, at man kan løse nogle af problmerne ved at gange op. Men jeg har nogle problemer, hvor det desværre ikke lader sig løse på den måde :o(
Jeg kan godt se at du får det rigtige resultat (i dette tilfælde) i VBA, og her er det så Access, som fejler men stadig på grund af den interne repræsentation af data... ...og nu skal du venligst ikke komme og spørge efter eksempler på hvor VBA vil fejle i din funktion...
Problemet er netop at du ikke kan vide dig sikker - hvornår bliver hun gal under opvasken?
Ved at der er en usikkerhed i om man får det rigtige resultat, så kan man ikke bruge resultatet til noget... (her lader jeg så være med at sammenligne med konen!)
Nu er vi jo langt ude i decimalerne, men prøv evt. at kigge på datatypen "Decimal", jeg mener at den repræsenterer data på en anden måde... har dog ikke lige tid til at kigge nærmere på den nu (jeg ved bare at når jeg importerer data fra vores AS/400, så oprettes de automatisk i "Decimal")
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.