Autor Tema: CU00673B Ejemplo static final java atributos de clase estaticos constantes  (Leído 2442 veces)

el_calderas

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 43
    • Ver Perfil
Hola, aqui tengo mi solución para este ejercicio.

La clase Circulo:

Código: [Seleccionar]
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:

Código: [Seleccionar]
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. 
« Última modificación: 24 de Marzo 2015, 11:54 por Alex Rodríguez »

toni_apr

  • Avanzado
  • ****
  • Mensajes: 497
  • Curiosidad, es uno de los pilares del Conocimiento
    • Ver Perfil
Hola calderas

Ejercicio correcto. Bien.

Respecto al número de decimales. En la clase Math encontrarás el método rint(double) con el que puedes conseguir esos decimales con redondeo.

La sintaxis a usar es la siguiente:

   valorDouble = Math.rint(valorDouble * potenciaDeDiez) / potenciaDeDiez;

donde valorDouble es el valor con muchos decimales y potenciaDeDiez es la unidad seguida de tantos ceros como decimales quieres.

Y el código siguiente presenta los caracteres ASCII entre el 30 y el 255.
Aquí están caracteres que no aparecen en el teclado incluso el ²

Código: [Seleccionar]
        for (int i=1030; i < 1256;i++) {
            System.out.print(i + " " + (char)(i-1000) + " ");
            if ((i % 10) == 9)  System.out.println();
        }

Saludos

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".