Gå til innhold

Antall desimaler i double


Anbefalte innlegg

Noe som vet hvordan man kan finne ut hvor mange desimaler en double datatype lagrer?

 

Jeg har laget en metode som beregner kvadratroten av et tall men vil at den skal stoppe etter at et visst antall desimaler er beregnet. Forslag på hvordan dette skal gjøres?

Lenke til kommentar
Videoannonse
Annonse

Float- og double-typene opererer vel ikke med så og så mange desimaler, men heller et gitt antall siffer, være det seg før eller etter komma.

Mer info her:

http://java.sun.com/docs/books/jls/second_...doc.html#230798

http://java.sun.com/docs/books/jls/second_...s.doc.html#9208

 

Hvis du jobber med en double _er_ vel beste løsning å bruke java.lang.Math.sqrt(), ellers kan du kikke på java.math.BigDecimal -klassen.

Lenke til kommentar
import java.io.*;
import java.util.*;
import java.lang.Integer;

class Rot {

   static BufferedReader in = null;
   public static void main(String args[]) {
 double tall=0;

 System.out.println("Skriv inn tallet og trykk Enter");
 try {
       	in = new BufferedReader(new InputStreamReader(System.in));
     }
   catch (Exception e) {
           e.printStackTrace();
       }       
 try {
       	tall = Double.parseDouble(in.readLine());
   	}
       catch (Exception e) {
           e.printStackTrace();
       }       
 int tall2=((int)tall);
 System.out.println("Vi skal finne roten av "+tall2+" numerisk");

       int teller=0;
       double ans=tall/6;
       double gjett=1;
       while(Math.abs(ans-gjett)>0.000000000001){
       	teller++;
       	gjett=ans;
       	ans = (ans+tall/ans)/2;
       	if (teller!=1) System.out.println(ans);
 	

       }      
 System.out.println();

 System.out.println("Roten av "+tall2+" er " + ans);
 System.out.println(teller -1 + " iterasjoner");

   }
}

Lenke til kommentar

Takk for svar : )

 

Fant det forsåvidt ut selv da etter mye prøving og feiling, og brukte heller en metode der jeg sjekket om differansen i ny beregning var større enn angitt nøyaktighet. Fungerte veldig bra etterhvert ;)

 

Implementerte tilogmed Newtons metode for å beregne røtter! :thumbup:

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