Gå til innhold

[Løst] kalkulator i flash - vil ikke gange enkelte desimaltall med "3"


Anbefalte innlegg

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 av Pettersenper
Lenke til kommentar
Videoannonse
Annonse

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. :)

  • Liker 1
Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...