Discussion:
Fejl i udregning i JavaScript
(for gammel til at besvare)
Jan Hansen
2020-05-01 18:06:58 UTC
Permalink
Jeg kæmper med et JavaScript, hvor brugeren skal kunne vælge en valuta,
som priser skal vises i.
http://kimsside.dk/valuta.php
Ved første ændring virker det tilsyneladende fint, men skifter man lidt
mellem de forskellige valutaer, opstår der større og større fejl.
Hvorfor bruger du ikke de originale tal til hver udregning? Så opstår
der ikke afrundingsfejl hen af vejen.
Jeg kan ikke lige gennemskue alle de avancerede udregninger, men her
er en mere primitiv udgave, der gerne skulle vise det samme, ligemeget
hvor meget man klikker rundt.
http://www.sniper-pistol.com/valuta.html
Krydspost webdesign og clientside, opfølgning til clientside.
Der må være noget galt med mit program, for jeg kan kun se dit indlæg i
dk.edb.internet.webdesign.
--
mvh Jan.
Help Microsoft stamp out piracy. Give
Linux to a friend today!
Kim Ludvigsen
2020-05-01 18:27:48 UTC
Permalink
Post by Jan Hansen
Ved første ændring virker det tilsyneladende fint, men skifter man lidt
mellem de forskellige valutaer, opstår der større og større fejl.
Hvorfor bruger du ikke de originale tal til hver udregning? Så opstår
der ikke afrundingsfejl hen af vejen.
Det var det, jeg ikke kunne gennemskue at gøre. Jeg var næsten klar
over, at fejlen skyldtes, at jeg brugte et forkert tal, men hvor ...

Jeg siger mange tak, det ser ud til at virke helt perfekt! Og dog, for
jeg kan se, at du bruger "id="prisibath" onchange..." Jeg har flere
priser på en side, så id kan ikke bruges. Kan det gøres med class i stedet?
Post by Jan Hansen
Krydspost webdesign og clientside, opfølgning til clientside.
Der må være noget galt med mit program, for jeg kan kun se dit indlæg i
dk.edb.internet.webdesign.
Ja, jeg fandt efterfølgende ud af, at det er alt for længe siden, jeg
sidst har krydspostet noget. Jeg havde helt glemt, at den skulle sendes
til begge grupper og så med opfølgning. Det burde ellers have siddet på
rygraden efter mange års brug, men rygraden er åbenbart ikke, hvad
rygraden har været.
--
Mvh. Kim Ludvigsen
Jan Hansen
2020-05-01 20:31:12 UTC
Permalink
Post by Kim Ludvigsen
jeg kan se, at du bruger "id="prisibath" onchange..." Jeg har flere
priser på en side, så id kan ikke bruges. Kan det gøres med class i stedet?
Den del af det er nu bare til den "omregner", skriv noget andet end 500 i
feltet og tryk enter, så kommer prisen i den valgte valuta frem ved siden af.

Men den med "Kursen for 100 baht = 2.84 EUR" havde jeg nu også givet en ID,
id="valutakurs", det dur så ikke, hvis der er flere priser på samme side.
Jeg troede, at du ville lave en valutavælger på forsiden, og så bruge php til
at indsætte priser ud fra værdien i cookie. Men nu har jeg rettet det til class,
så det også kan opdatere priser på samme side.

http://www.sniper-pistol.com/valuta1.html
--
mvh Jan.
Help Microsoft stamp out piracy. Give
Linux to a friend today!
Kim Ludvigsen
2020-05-01 21:20:57 UTC
Permalink
Post by Jan Hansen
Post by Kim Ludvigsen
jeg kan se, at du bruger "id="prisibath" onchange..." Jeg har flere
priser på en side, så id kan ikke bruges. Kan det gøres med class i stedet?
Den del af det er nu bare til den "omregner", skriv noget andet end 500 i
feltet og tryk enter, så kommer prisen i den valgte valuta frem ved siden af.
Flovt, jeg havde slet ikke lagt mærk til, at du havde lavet det som et
input-felt. Jeg kiggede kun på resultatet.
Post by Jan Hansen
Jeg troede, at du ville lave en valutavælger på forsiden, og så bruge php til
at indsætte priser ud fra værdien i cookie.
Jeg har nogle artikler, hvor der er beløb i baht, og hvor jeg så
skriver, at det svarer til x kr. Problemet er bare, at kurserne kan
svinge voldsomt med tiden, så det vil være meget smartere, at prisen med
den aktuelle kurs står i en parentes efter baht-prisen. Det vil især
være praktisk med opdaterede kurser på en side som den her:
https://rejse-til-thailand.dk/priser

Og så er det et ekstra plus at tilbyde besøgende fra andre lande andre
valutaer end danske kroner.
Post by Jan Hansen
Men nu har jeg rettet det til class,
så det også kan opdatere priser på samme side.
Smukt! Jeg vil se, om jeg kan finde ud af at kopiere det uden at lave
fjel. Du skal have rigtig mange tak!
--
Mvh. Kim Ludvigsen
Kim Ludvigsen
2020-05-02 10:05:29 UTC
Permalink
Post by Kim Ludvigsen
Post by Jan Hansen
Men nu har jeg rettet det til class,
så det også kan opdatere priser på samme side.
Smukt! Jeg vil se, om jeg kan finde ud af at kopiere det uden at lave
fjel. Du skal have rigtig mange tak!
Alt fungerer perfekt. Endnu engang, tak!

Det kan ikke ses på siderne. Jeg er i gang med at lave om på layoutet,
så det tager nogle uger, før det går live.
--
Mvh. Kim Ludvigsen
Jan Hansen
2020-05-03 11:58:01 UTC
Permalink
Post by Kim Ludvigsen
Jeg er i gang med at lave om på layoutet,
så det tager nogle uger, før det går live.
Du er selv sikkert selv nået meget længere på nuværende
tidspunkt, men jeg har leget lidt videre, og sat en class
på tabellerne, så de bliver udfyldt, uden man skal ændre
andet. Det virker for det meste, men linien med
"Crocs (originale) 1.890"
giver regnefejl, hvis ikke jeg fjerner tusindadskiller.

http://www.sniper-pistol.com/valuta2.html
--
mvh Jan.
Help Microsoft stamp out piracy. Give
Linux to a friend today!
Kim Ludvigsen
2020-05-03 13:54:22 UTC
Permalink
Post by Jan Hansen
Post by Kim Ludvigsen
Jeg er i gang med at lave om på layoutet,
så det tager nogle uger, før det går live.
Du er selv sikkert selv nået meget længere på nuværende
tidspunkt, men jeg har leget lidt videre, og sat en class
på tabellerne, så de bliver udfyldt, uden man skal ændre
andet.
Åh, det er jo meget smartere! Men jeg har desværre allerede nået at lave
en del sider med den gamle kode, så jeg vil lige overveje, om jeg vil
starte forfra.
--
Mvh. Kim Ludvigsen
Jan Hansen
2020-05-05 13:03:12 UTC
Permalink
Post by Kim Ludvigsen
Åh, det er jo meget smartere! Men jeg har desværre allerede nået at lave
en del sider med den gamle kode, så jeg vil lige overveje, om jeg vil
starte forfra.
Det er nu kompatibelt med den første udgave, efter
"Kursen for 100 baht" står der stadig
<span class="pris" thaipris="100">100</span> <span class="valuta">baht</span>
som i første udgave.
Det nye er <span class="vf">450 baht</span> der tilføjer en parantes med
prisen i den valgte valuta, og så <table class="prisliste"> der udfylder
tredie kolonne med beløb i valgt valuta, ud fra værdien i anden kolonne.
Decimalpunktet i de indsatte tal bliver udskiftet til komma, med mindre
USD er valgt, så skal det vel være punktum.
--
mvh Jan.
Help Microsoft stamp out piracy. Give
Linux to a friend today!
Kim Ludvigsen
2020-05-05 19:54:27 UTC
Permalink
Post by Jan Hansen
Post by Kim Ludvigsen
Åh, det er jo meget smartere! Men jeg har desværre allerede nået at lave
en del sider med den gamle kode, så jeg vil lige overveje, om jeg vil
starte forfra.
Det er nu kompatibelt med den første udgave
Det havde jeg ikke gennemskuet. Så er der jo ikke så meget at betænke
sig på. Endnu engang tak, jeg glæder mig allerede til at slappe af i al
den tid, jeg plejer at bruge til kursudregninger, når jeg opdaterer
prissiden.
--
Mvh. Kim Ludvigsen
Martin Larsen
2020-05-04 10:10:55 UTC
Permalink
Jeg går ud fra, at det er fordi, det ikke er det rigtige beløb, der
bruges til udregningen ved efterfølgende valg, men jeg kan ikke
gennemskue, hvor det går galt. Nogen der kan gennemskue problemet?
Linje 83:

parseFloat(el.innerHTML) giver et forkert resultat fordi funktionen
forventer et decimalpunkt, ikke komma. Så parseFloat("3,08") bliver til 3.

Der kan være andre problemer end dette, men det har jeg ikke kigget på.
--
tv4ever.dk
bedrevejr.dk
Kim Ludvigsen
2020-05-04 14:05:32 UTC
Permalink
Post by Martin Larsen
Jeg går ud fra, at det er fordi, det ikke er det rigtige beløb
parseFloat(el.innerHTML) giver et forkert resultat fordi funktionen
forventer et decimalpunkt, ikke komma. Så parseFloat("3,08") bliver til 3.
Det er altså heller ikke nemt, at vi ikke bare alle kan være enige om at
bruge samme adskillere! Det forklarer jo, hvorfor afvigelserne blev
større og større ved hvert nye valg. Tak.
Post by Martin Larsen
Der kan være andre problemer end dette, men det har jeg ikke kigget på.
Jan har været så flink at lave hele to nye scripts, der er meget bedre
end mit gamle script.
--
Mvh. Kim Ludvigsen
Loading...