Pettersenper Skrevet 25. oktober 2011 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
Trondster Skrevet 25. oktober 2011 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
Pettersenper Skrevet 25. oktober 2011 Forfatter Skrevet 25. oktober 2011 Takk for hjelp! Alt ser ut til å fungere nå.
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å