Hola, aqui tengo mi solución para este ejercicio.
La clase Circulo:
public class Circulo
{
private static final double NUMEROPI=3.1416;
private double radio;
public Circulo(){
radio=0;
}
public void setRadio(double radio){
this.radio=radio;
}
public double getRadio(){
return radio;
}
public double longitudCirculo(){ //la longitud de una circunferencia es, Longitud=2*pi*radio
double longitud=(2*NUMEROPI*radio);
return longitud;
}
public double areaCirculo(){ //El área del círculo es igual a pi por el radio al cuadrado..
double area=((radio*radio)*NUMEROPI);
return area;
}
}
Y la clase Main:
import java.util.Scanner;
public class Main
{
public static void main(String[]args){
System.out.println("Introduce el radio del circulo a crear: ");
Scanner sc=new Scanner(System.in);
double entradaTeclado=sc.nextDouble();
Circulo circulo=new Circulo();
circulo.setRadio(entradaTeclado);
System.out.println("El area del circulo es: " + circulo.areaCirculo() + " cm2");
System.out.println("La longitud del circulo es: " + circulo.longitudCirculo() + " cm");
}
}
Ahora tengo un par de preguntas con respecto a la solución que da este programa.
En primer lugar, las medidas devueltas tienen 4 decimales. ¿Como se puede hacer para que salgan dos? He estado buscando información y lo que he encontrado hace referencia a la clase DecimalFormat, pero esta clase lo que hace es limitar la representación grafica pero no modifica el numero, es decir, si el número es 3,4599, utilizando la clase DacimalFormat muestra, 3,45, por ejemplo, si quiero solo dos decimales. Pero lo que yo quiero que salga es 3,46, la cantidad redondeada.
¿como se puede hacer esto?
Y otra, mas que duda, curiosidad, en el texto a imprimir quiero que salga la medida del area seguida de cm cuadrados, ¿como puedo representar el exponente de cm?
Un saludo y muchas gracias.