Avatar billede bmdk Nybegynder
29. juni 2011 - 17:47 Der er 5 kommentarer og
1 løsning

Hjælp til udregning - for mange nuller

Hej exp!

Nu bliver jeg vist nødt til at få nogle andre øjne på dette regnestykke :)

Jeg arbejder i øjeblikket på en udregner i javascript, der skal udregne ens overskud, hvis man gør brug af et abonnement. Udregningen sker efter nogle inputs fra brugeren samt nogle fastsatte satser i forhold til abonnementer, gebyrer og rater.

Som det ser ud nu, så regner den det egentlig "rigtigt nok" ud. Mit regnestykke skal give 7.128,00 men jeg får værdien: 712800.0000000001 istedet.

Min test kan ses her: http://test.nuanceweb.dk

Mine testdata er som følger:

- Antal ansatte: 4
- Gnmsnt. ordreværdi: 400
- Antal ordrer årligt: 5500
- Overskudsgrad: 2.7

Selve koden kan I se i kildekoden eftersom det hele er JavaScript (well, variablerne i tabellen, som bruges til udregning kommer godt nok fra Umbraco CMS)

Nogen der har et hint til dette? Jeg har forsøgt mig med toFixed() metoden, men det fungerede heller ikke.

På forhånd mange tak for hjælpen!

Mvh. Bo
Avatar billede kjeldsted Novice
29. juni 2011 - 18:18 #1
Åbne spørgsmål tilbage fra 2005 :O De må da snart være overståede :)

Men der sker jo tydeligvis det at der et sted er en minial rest i et eller andet divisionsstykke.

Men så vidt jeg kan se der der vel så to problemer. Dels de utrolig mange decimaler samt at resulatet er 100 gange for højt i forhold til det ud udregner? Er det korrekt?
Avatar billede bmdk Nybegynder
29. juni 2011 - 18:49 #2
Hey Kjeldsted,

Tak for svaret :) Ja hehe - må vist hellere se at få lukket nogle af dem. Er god til at glemme dem må man sige!

Men ja, du har helt ret.

Jeg har prøvet at dividere 7128.000000000001 med 100,  hvilket jo selvfølgelig flytter kommaet (punktummet...) to pladser til venstre.

Enten er det fordi jeg er rundsmadret efter en lang arbejdsdag eller også har jeg simpelthen misforstået noget (?) ;)

Tak igen!

Mvh. Bo
Avatar billede kjeldsted Novice
29. juni 2011 - 19:02 #3
Men nu ved jeg jo ikke helt hvordan dit ønskede regnestykke skal være, så det kan være lidt svært at finde fejlen.

Det med de voldsomt mange decimaler er forholdsvis let at gøre noget ved. Og det andet er i sidste ende sikker en tryk fejl du har fået stirret dig blid på ;) Som vi alle gør en gang imellem.
Avatar billede bmdk Nybegynder
29. juni 2011 - 19:16 #4
Det kan du sagtens få :) Med de samme tal som jeg skrev i min første post vil det se sådan her ud:

((((5500 * 12.0) + 5500) * 400) - (400 * 5500)) * 2.7;

Resultatet skal så minuses fee + sub (6550)
Avatar billede bmdk Nybegynder
29. juni 2011 - 19:41 #5
Fik selv løst problemet :) Det var pga toFixed() metoden laver værdien om til en streng, så denne skulle derefter konverteres til int med Number(string) metoden.

Så det spiller hermed!

Vil du have point kjeldsted? Så smid et svar :)
Avatar billede kjeldsted Novice
09. oktober 2011 - 12:13 #6
Hovsa da. Har da aldrig opdaget du havde svaret. Burde da ellers have fået en mail? Hmmm. Nå, men her er et svar.
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

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



IT-JOB

Danske Commodities A/S

IT systems developer

Cognizant Technology Solutions Denmark ApS

Test Manager