mboost-dp1

JavaScript med decimaler


Gå til bund
Gravatar #1 - milandt
18. maj 2011 19:43
document.write( 149.4 - 400.4 );

output:
-250.99999999999997

wtf?
Gravatar #3 - arne_v
18. maj 2011 19:59
#1-2

Ja.

Sådan virker floating point.
Gravatar #4 - Daniel-Dane
18. maj 2011 20:00
Computers skrev:
Fucking decimals, how do they work?
Gravatar #5 - arne_v
18. maj 2011 20:02
Gravatar #6 - arne_v
18. maj 2011 20:04
Grundliggende tror jeg aldrig at man bør lave FP i JavaScript.

FP er til beregninger på noget som er målt med måle usikkerhed. Det bruger man ikke JavaScript til.

Og husk: der er dødsstraf for at bruge FP til beløb!
Gravatar #7 - Windcape
18. maj 2011 20:05
In short: Gang op til integers, og divider bagefter.

arne_v (6) skrev:
Og husk: der er dødsstraf for at bruge FP til beløb!
JavaScript har ikke moneytary types :(
Gravatar #8 - arne_v
18. maj 2011 20:06
Windcape (7) skrev:
JavaScript har ikke moneytary types :(


JS har heltal går jeg ud fra.
Gravatar #9 - Spiderboy
18. maj 2011 20:28
Windcape (7) skrev:
JavaScript har ikke moneytary types :(

Heltal regnet i øre/cent/penny/etc.?
Gravatar #10 - Windcape
18. maj 2011 20:34
Jeg ser bare ikke en regex eller string-split løsning for særlig optimal :p

Men så igen, jeg ville ikke håndtere penge i JavaScript. Eller floating point numbers, ... eller tal i det hele taget.
Gravatar #11 - milandt
18. maj 2011 21:25
Sad netop og var gravet ned i et større projekt jeg har overtaget fra en udvikler der er forsvundet fra jordens overflade. Ja, det er beløb det drejer sig om. Ja, det ser spændende ud på når de beløb der arbejdes med ikke er heltal.

Min løsning bliver at gange op til heltal og så bare acceptere at "sådan er det bare".
Gravatar #12 - onetreehell
18. maj 2011 21:53
Øh. Den mindste enhed i det danske pengesystem er en øre. Brug integers til ører og husk at dividere med 100 for at få kroner, og den slags. Det er ikke så svært. Hvis man er fancy laver man et objekt til den slags.
Gravatar #13 - milandt
18. maj 2011 22:27
#12 enig, men ønsker nu ikke at skrive et kæmpe system grundlæggende om, blot fordi det grundlæggende er lavet forkert (selvom nogen nok burde).

Med hensyn til lavest enhed - I USA sælger de benzin i beløb angivet i mindre end hele cents. Det kunne nok også forekomme andre steder, så det kommer meget an på den forretning man arbejder med, om man kan tillade sig at antage at øre/cent er den mindste hele enhed.
Gå til top

Opret dig som bruger i dag

Det er gratis, og du binder dig ikke til noget.

Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.

Opret Bruger Login