Pettersenper Skrevet 25. oktober 2011 Del Skrevet 25. oktober 2011 (endret) Hei, vi holder på med å lage en kalkulator i flash men den har ett merkelig problem. Den løser bare enkelte av oppgavene som vi ganger med 3. den kan for eksempel løse 3*0,03 og 3* 0.0005 men ikke 3*0,3 og 3*0,65 3*0.3 gir 0.8999999999999999 i output vinduet (men viser ikke på kalkulatoren, og det er jo i tillegg feil.) 3*0,65 gir 1.9500000000000002 Verdier som vises på kalkulatoren (når den viser) er nøyaktige svar kode til multiplikasjonen: case "multiplication": nAns = (nInput1 * nInput2); break; Noen ide om hva problemet kan være og hvordan det kan fikses? Endret 25. oktober 2011 av Pettersenper Lenke til kommentar
Trondster Skrevet 25. oktober 2011 Del Skrevet 25. oktober 2011 Sånn fungerer float-tall i veldig mange programmeringsspråk - de er ikke basert på desimaltall, og så blir det unøyaktigheter i desimalene langt, langt utover. Den enkle løsningen er å runde av til en sju-åtte desimaler i det du skal skrive ut svaret, og så forsvinner unøyaktigheten. 1 Lenke til kommentar
Pettersenper Skrevet 25. oktober 2011 Forfatter Del Skrevet 25. oktober 2011 Takk for hjelp! Alt ser ut til å fungere nå. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå