Avatar billede humlebidk Nybegynder
25. august 2003 - 13:47 Der er 5 kommentarer og
4 løsninger

Reelle tal og udtræk

Jeg har et lille problem med access. Jeg har defineret et reelt tal. Jeg indsætter det med , og den lagres i access med , (Det er dansk version).

Men når jeg laver et udtræk fra databasen i asp - Jscript så sker der en masse forkerte ting.

Mit udtræk ser således ud:

startkm=String(rs("startkm"))

Hvis jeg har lagret 24,2 i databasen, så får jeg fx 24.200000129 når jeg udskriver variablen.

Med andre ord, så får jeg et engelsk udtræk hvor . er standard.

Jeg kan sagtens afrunde den med 3 - 4 decimaler. Men 6 eller 7 decimaler vil give afrundingsfejl, og det rister mine kager..

En smart / elegant løsning, hvor de famøse 6-7 decimaler ikke ændres ved skiftet fra , til . giver point. Såfremt der stadig kan foretages større end og mindre end søgning på startkm. Hvis startkm ændres til tekst, så er der krøl med større end / mindre end.
Avatar billede humlebidk Nybegynder
25. august 2003 - 13:51 #1
Access 2002 hvis det hjælper =)
Avatar billede erikjacobsen Ekspert
25. august 2003 - 13:52 #2
Du måler kilometer: 24,2 km. Hvad med at måle meter: 24200 m ?
Avatar billede terry Ekspert
25. august 2003 - 13:53 #3
your problem is very likley because the server where your asp is being run has the regional setting set to GB or US. It isnt Access (or I dont think so) which is causing the problem.
Is it not possible in ASP to change which language is being used?
Avatar billede humlebidk Nybegynder
25. august 2003 - 14:12 #4
ericjacobsen: Så skal jeg gange tallet op inden det indsættes. Det vil selvfølgeligt også klare decimalproblemet længere ude. Men hele problemet er at jeg gerne ville undgå de mange ekstra cifre i udtrækket, for de er ikke inde i selve databasen.

terry: It could very well be the problem, and I thougth about it myself, but how can I get the data through without adding ekstra didgets.
Avatar billede humlebidk Nybegynder
25. august 2003 - 14:54 #5
terry: I can't change the asp language.
Avatar billede hekla Nybegynder
25. august 2003 - 16:28 #6
Prøv at sætte denne ind i toppen af din asp-side. Den ændrer fortolkningssproget til dansk.
Session.LCID = 1030
Avatar billede proaccess Nybegynder
26. august 2003 - 08:24 #7
Du kan ændre datatypen til Valuta (Currency), som "kun" regner med 4 decimaler. Der sker så ikke skæve afrundinger, som i dit eksempel...
Avatar billede fynbohans Nybegynder
27. august 2003 - 20:21 #8
Du kan løse problemet ved at bruge heltal ved overførslen.
Hvis du vil have 1 decimal ganger du med 10 i Access:
HelDK = Int(DeciDK*10)

Efter overførslen til ASP gør du det omvendte, altså deler med 10:
DeciGB = HelDK/10.
Avatar billede humlebidk Nybegynder
15. september 2003 - 10:08 #9
har prøvet lidt af hvert, men intet af det løser problemet ordentligt. Den bedste løsning er at jeg gør mig klart hvor mange decimaler jeg ønsker, hvorefter jeg ganger op, dividerer med samme ved udtræk.

Det føles bare hamrende forkert, at jeg får forkert udtræk, når pladsen fysik er afsat til det.

Jeg takker for de mange bud =)
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