Avatar billede amcon Nybegynder
01. februar 2003 - 19:38 Der er 8 kommentarer og
1 løsning

Regnefejl i Access

Jeg har en database, med flere beregnende felter. I al simpelhed en QRY med 1 felt, der beregner antal*Enheder. I en formular beregner jeg alle linier og har et sumfelt i formularfoden. herfra beregner jeg moms og summerer til total faktura beløb.
Problemet er at Access i nogle tilfælde beregner forkert, i forhold til kontrolberegning på en regnemaskine. Det er kun meget lidt, på decimalerne.
Er der nogen der kan give et tip til hvad der er galt. Kan Acces overhovedet beregne korrekt?
Avatar billede hadaps Nybegynder
01. februar 2003 - 20:02 #1
du siger det er meget lidt på decimalerne..
- så har du tjekket at alle cellerne er sat op til at bruge det ringtige antal decimaler?
Avatar billede amcon Nybegynder
01. februar 2003 - 20:25 #2
Yes. Alle felter er sat til bedst mulige datatype og Valuta, som format. Det jeg søger er måske faldgruper, som nogen kender til.
Avatar billede hadaps Nybegynder
01. februar 2003 - 20:37 #3
jeg har ikke flere bud, men jeg tror ikke rigtig på at Access regner forkert!!
Avatar billede nih Novice
01. februar 2003 - 22:47 #4
access regner forkert på decimalerne (ligesom alle andre programmer) hvis du angiver dit felt skal være 'Dobbelt reelt tal' - det skyldes noget med binære talsystem kontra det decimale system.

Den mest nøjagtige er decimal.

Niels
Avatar billede nih Novice
01. februar 2003 - 22:57 #5
Ellers kan du ændre felttypen til 'valuta'
Avatar billede amcon Nybegynder
01. februar 2003 - 23:23 #6
Tak for indsatsen. Der er med liden tillid til Access at jeg går videre. Kan det virkelig være rigtigt at der kan være betydelige unøjagtigheder i et ellers seriøst program. Men jeg prøver at ændre lidt på sagerne efter dit råd og håber at problemerne bliver færre. Findes der mon, nogen steder, information om nøjagtigheden af beregninger i Access.
Avatar billede nih Novice
01. februar 2003 - 23:42 #7
eks:
Sub testDouble()
    Dim sum As Single
    Dim i As Integer
    For i = 1 To 10000
      sum = sum + 0.0001
    Next i
    MsgBox sum
End Sub

man skulle tro at sum = 1, men nej den bliver 1,000054

Det er lidt det samme med 1/3 i det decimale talsystem.
1/3 = 0,333333333333333333.........

hvis du laver beregninger 100000 gange på 0,333333 vil du få en fejlberegning der bliver større og større.

Niels
Avatar billede amcon Nybegynder
02. februar 2003 - 10:55 #8
Tak NIH for svarene. Jeg må leve med at der er fejl på beregningerne. Jeg analyserer min database og vender tilbage.
Avatar billede hadaps Nybegynder
03. februar 2003 - 20:24 #9
ja, der blev jeg i hvert fald overrasket!!!
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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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