El compilador dice que la variable api no esta siendo utilizada porque efectivamente, no se utiliza fijate que posteriormente a esa linea la variable api no vuelve a aparecer en el código y por lo tanto se genera esa advertencia
Probablemente los escritores del libro se equivocasen y esa linea sobra por lo tanto quedaría así:
Código Java:
Ver originalpublic class NúmeroPI{
public static double dameValorPI(int nDecimales){
double pi=0, pi2=0;
int n=0;
double epsilon
=1/Math.
pow(10, nDecimales
); System.
out.
println("Epsilon= "+epsilon
);
do{
pi2=pi;
pi
+=Math.
pow(-1, n
)/(2*n
+1); n++;
}while(Math.
abs(4*pi
-4*pi2
)>epsilon
);
return 4*pi;
}
public static void main
(String args
[]){ //Desaparece la línea que estaba aquí
int nDecimales=6;
double pI=dameValorPI(nDecimales);
System.
out.
printf("El número PI con %d decimales es %8.6f\n", nDecimales, pI
); }
}
O que se olvidasen de hacer la llamada a través del objeto, por lo tanto quedaría así:
Código Java:
Ver originalpublic class NúmeroPI{
public static double dameValorPI(int nDecimales){
double pi=0, pi2=0;
int n=0;
double epsilon
=1/Math.
pow(10, nDecimales
); System.
out.
println("Epsilon= "+epsilon
);
do{
pi2=pi;
pi
+=Math.
pow(-1, n
)/(2*n
+1); n++;
}while(Math.
abs(4*pi
-4*pi2
)>epsilon
);
return 4*pi;
}
public static void main
(String args
[]){ NúmeroPI api=new NúmeroPI(); //Se crea un objeto de tipo NúmeroPI y se almacena en la variable api.
int nDecimales=6;
double pI=api.dameValorPI(nDecimales); //Se llama al método perteneciente al objeto declarado anteriormente
System.
out.
printf("El número PI con %d decimales es %8.6f\n", nDecimales, pI
); }
}
Evidentemente la opcion mas sencilla es la primera, aquí no es necesario crear ningun objeto para nada