Gå til innhold

Metode for potenser ved bruk av float?


Anbefalte innlegg

Skrevet

Jeg vil lage en while-løkke som regner ut uttrykket

 

3 + 2^(-n)

 

for n= 0 og opp til den n som gir svar = 3.

 

Dette er i og for seg enkelt, men jeg har fått beskjed om å bruke datatypen float, men så vidt jeg kan se finnes det power-metode bare for double. Hva kan jeg gjøre da tro? :hmm:

Videoannonse
Annonse
Skrevet
Jeg vil lage en while-løkke som regner ut uttrykket

 

3 + 2^(-n)

 

for n= 0 og opp til den n som gir svar = 3.

6882298[/snapback]

Kan du ikke bare skrive while(true), det gjør samme nytten. Du finner vel ingen n som gir svar = 3.

Skrevet

Du kan jo bruke parseDouble, men jeg er jo usikker på om det er det de vil frem til...

 

Kanskje de vil du skal lage power-utregningen manuelt.

Skrevet

Hvis jeg bruker double istedet for float, så vil alle n fra 52 og opp gi svar = 3.

Poenget her er at jeg skal se hvordan det blir med float, så jeg kan ikke bruke parseDouble heller...

Skrevet

Du vil heller ikke med float få riktig svar når n blir stor nok. Likningen din går vel rett og slett ikke opp, mens man på en datamaskin med begrensede datatyper vil få den til å gå opp.

Skrevet

Neeei, men det er det som er meningen med denne oppgaven, vise oss at sånne "feil" skjer i denne typen programmer...

Skrevet (endret)

Holder det ikke å bare caste til float? Slik feks?

 int n;
 for (n = 0; (3 + (float)Math.pow(2, -n)) > 3.0; n++);
 System.out.println(n);

 

Uten (float) blir det 52, med blir det 23.

 

Å skrive egen pow-algoritme blir vel ganske tidkrevende og blir vel mer et studie i matematikk enn i java/programmering.

 

Edit: Når jeg tenker meg om er det vel egentlig ganske enkelt, hvis man bare skal ha heltall i eksponenten, som i denne situasjonen, men koden over gjør vel det du skal?

Endret av Mortal

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