Avatar billede Shasim Novice
01. oktober 2003 - 10:41 Der er 11 kommentarer og
1 løsning

Beregnings problem

Jeg har en funktion der ved tryk på en knap skal lægge til/trække fra en counter og skrive resultatet i et dynamisk tekstfelt. Det går næsten som det skal, bortset fra  at jeg får lidt "skæve" resultater. Eksempel:
0.06 - 0.02 - 0.02 - 0.01 = 0.0999999999999999999999
Der skulle selvfølgelig bare stå 0.01. Hvorfor blir det ikke sådan?
Avatar billede nikolajdu Nybegynder
01. oktober 2003 - 10:46 #1
Kunne du ikke gøre sådan her : int(6 - 2 - 2 - 1)/100
Avatar billede temanden Nybegynder
01. oktober 2003 - 10:46 #2
Da det bliver beregnet med datatypen float, hvilket som standard benytter rimlig mange tal efter punktumet.. I hvilket sprog har du skrevet din funktion ?, du skal nok specificere hvor mange tal du ønsker efter punktumet.
Avatar billede Shasim Novice
01. oktober 2003 - 10:50 #3
Se, det drejer sig om et optællingssystem af diamanter, som fungerer sådan, at ved brug af et klip/en diamant (der findes 15 forskellige, altså 15 forskellige diamanterstørrelser) vil størrelsen blive lagt til en fælles tæller. Så man kender ikkeværdierne på forhånd.
Avatar billede nikolajdu Nybegynder
01. oktober 2003 - 10:53 #4
Ved godt det er lidt besværligt men gang med 100 dividér med 100 - Så får du den rigtige værdi ud.

int((0.06*100) -( 0.02*100) - (0.02*100) - (0.01*100))/100

Kan der være 0,002 så gang med 1000 osv...
Avatar billede Shasim Novice
01. oktober 2003 - 10:56 #5
temanden >> Øhh sprog.. Actionscript... værdien blir tilføjet via knappen i diamantklippet med: _root.carat = _root.carat + 0.09; og trukket fra igen hvis diamanten fjernes.
Avatar billede Shasim Novice
01. oktober 2003 - 11:02 #6
nikolajdu >> OK, det kan jeg vist godt bruge, men kan jeg ikke også begrænse antallet af decimaler? Skal det så koples på der hvor jeg skriver i tekstfeltet?

onClipEvent (enterFrame) {
    _root.antal_carat = _root.carat;
    if (_root.bril == false){
        _root.antal_carat = 0;
    }
}
Avatar billede nikolajdu Nybegynder
01. oktober 2003 - 11:07 #7
Hvad mener du med antallet af decimaler?

Har lidt svært ved at gennemskue hvad der er hvad i dit movieclip.
Avatar billede Shasim Novice
01. oktober 2003 - 11:09 #8
Har lige prøvet med nikolajdus forslag på to diamanter:
_root.carat = _root.carat + ((0.01*100)/100);
Men resultatet kan stadig blive 0.009999999.
Avatar billede nikolajdu Nybegynder
01. oktober 2003 - 11:13 #9
_root.carat += int(0.01*100)/100;
Avatar billede Shasim Novice
01. oktober 2003 - 11:17 #10
Tak, det virker. Læg et svar så du kan få dine points.

:) Shanne
Avatar billede nikolajdu Nybegynder
01. oktober 2003 - 11:27 #11
oki doki :))
Avatar billede nikolajdu Nybegynder
01. oktober 2003 - 11:30 #12
Tak for point :))
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester