Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: el_calderas en 23 de Marzo 2015, 15:27

Título: CU00673B Ejemplo static final java atributos de clase estaticos constantes
Publicado por: el_calderas en 23 de Marzo 2015, 15:27
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. 
Título: Re:Solución CU00673B static final java atributos de clase estaticos constantes
Publicado por: toni_apr en 23 de Marzo 2015, 20:56
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