kennethi Skrevet 6. januar 2009 Del Skrevet 6. januar 2009 (endret) løst Endret 27. januar 2009 av kennethi Lenke til kommentar
Cyberfrog Skrevet 7. januar 2009 Del Skrevet 7. januar 2009 (endret) *pirke* "if-loop" er meget feil ordbruk. Så skal jeg være hjelpsom. Har mest erfaring med Java, langt mindre med C++, men antar det blir krøll fordi float-variabelen sammenlignes med double-verdier. Kan løses ved å putte f etter verdiene, slik: if (key == 'k') { if (menuoption == 1.4f) { gamelevel = 2; cout << "Start game"; } else if (menuoption == 0.55f) { cout << "Open save"; } else if (menuoption == -0.3f) { cout << "Quit"; } } Det snek seg også inn et semikolon for mye i koden din. I dette tilfellet avslutter den if-setningen, og den nedenstående koden mellom '{' og '}' kjøres uavhengig av den. Testet det ovenstående med GCC/g++ for å være helt sikker på at jeg ikke tuller. Edit: Heh, og uavhengig av alt dette har selvfølgelig GeirGrusom et poeng. Mer info: http://en.wikipedia.org/wiki/Floating_poin...curacy_problems Endret 7. januar 2009 av Cyberfrog Lenke til kommentar
GeirGrusom Skrevet 7. januar 2009 Del Skrevet 7. januar 2009 Hvorfor er menuoption en float? Du kan ikke sammenligne floats på den måten. Lenke til kommentar
LostOblivion Skrevet 8. januar 2009 Del Skrevet 8. januar 2009 GeirGrusom har rett, siden tallene lagres binært i minnet (i motsetning til base 10, som man oftest skriver det i kildekoden), blir det ofte litt skeis når man sammenligner det på denne måten. Hvis man er nødt til å sammenligne flyttal, bruk < og >, f eks: a < 1.35 && a > 1.25. Ta en titt her. Lenke til kommentar
Hans_Henrik Skrevet 8. januar 2009 Del Skrevet 8. januar 2009 btw... det spille du holder på med, er det YATC? Lenke til kommentar
teflonpanne Skrevet 9. januar 2009 Del Skrevet 9. januar 2009 Den vanlige måten å sammenlikne floats på er gjerne float epsilon = 0.0001; // velg presisjon og så if (fabs(a - b) < epsilon) // a og b er like Lenke til kommentar
GeirGrusom Skrevet 9. januar 2009 Del Skrevet 9. januar 2009 Jeg ville dog brukt pointer to member eller pointer to function for dette istedet for en hardkodet if setning. 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å