Autor Tema: Redondear a dos decimales con Java clase DecimalFormat genera String CU00644B  (Leído 12765 veces)

edioswaldo

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 10
    • Ver Perfil
Buenas estimados, favor darme revisando si esta bien el código.

Por cierto tuve que importar una clase  para poder usar un objeto y redondear o darle formato a una variable tipo double, ya que al hacer los calculos me salian hasta 9 decimales. No se si se puede omitir o hacer de otra forma. ;D

Código: [Seleccionar]
/* EJERCICIO
Fecha:12-09-2015
Define una clase denominada multiplicadorDieces con un constructor vacío y que contenga un método
denominado multiplicarPorDieces que reciba dos parámetros:
 el primero un número de tipo double y el segundo un número de tipo entero.
 El método debe devolver el resultado de multiplicar por 10 elevado al segundo número el primer número.
 Ejemplo: multiplicarPorDieces (2.55, 2) devuelve 2.55*100 = 255.
 multiplicarPorDieces (3, 5) devuelve 3*100000 = 300000.
 MultiplicarPorDieces (-0.0563, 3) devuelve -0.563 * 1000 = -56.3.
 Crea un objeto y comprueba que el método opera correctamente.
 Para comprobar si es correcta tu solución puedes consultar en los foros aprenderaprogramar.com.
*/
import java.text.*;//importo clase para poder dar formato a tipo "double" a 2 numeros
public class multiplicadorDieces{//Nombre de la clase
    //Sin atributos para el eljemplo
    //Constructor general vacio
    public multiplicadorDieces(){  }
    //método
    public String multiplicarPorDieces(double num1, int num2){
        int acumulador=1;
        String cadena="";
        for(int x=1;x<=num2;x++){
            acumulador*=10;
        }
        DecimalFormat df = new DecimalFormat("#.##");//creo objeto df
        cadena="Multiplicador por Dieces: "+ num1 + " * " + acumulador + " = " +df.format (num1*acumulador);
        System.out.println(cadena);
        return cadena;
       
    }//cierre del método

}//cierre de la clase Abstracta

Gracias por su ayuda.
« Última modificación: 14 de Septiembre 2015, 10:51 por Ogramar »

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2659
    • Ver Perfil
Re:Redondear a dos decimales con Java clase DecimalFormat genera String CU00644B
« Respuesta #1 en: 14 de Septiembre 2015, 10:53 »
Hola edioswaldo Tu código funciona pero tiene algo que no está bien resuelto. El ejercicio dice

Citar
El método debe devolver el resultado de multiplicar por 10 elevado al segundo número el primer número.

El resultado del método es una operación de multiplicación por eso lo más adecuado es que el resultado del método sea un valor numérico y no un String, es decir en vez de  public String multiplicarPorDieces(double num1, int num2){

usar public double multiplicarPorDieces(double num1, int num2){

Sería:

Código: [Seleccionar]
import java.text.*;//importo clase para poder dar formato a tipo "double" a 2 numeros
public class multiplicadorDieces2{//Nombre de la clase
    //Sin atributos para el eljemplo
    //Constructor general vacio
    public multiplicadorDieces2(){  }
    //método
    public double multiplicarPorDieces(double num1, int num2){
        int acumulador=1;
        double resultado = 0.0;
        for(int x=1;x<=num2;x++){
            acumulador*=10;
        }
        DecimalFormat df = new DecimalFormat("#.##");//creo objeto df
        String cadena="";
        resultado = num1*acumulador;
        cadena="Multiplicador por Dieces: "+ num1 + " * " + acumulador + " = " +df.format(resultado);
        System.out.println(cadena);
        return resultado;
       
    }//cierre del método

}//cierre de la clase Abstracta

El método format de DecimalFormat genera un String y eso lo podemos usar para mostrar algo por pantalla pero si queremos devolver un double y quisiéramos redondearlo hay varias maneras de hacerlo.

Realmente el ejercicio no pedía que se mostrara por pantalla el resultado, puedes ver una solución más simple en https://www.aprenderaprogramar.com/foros/index.php?topic=1972 Para comprobar que el método funcione basta con crear un objeto en BlueJ y invocar el método, desde ahí se pueden ver los resultados de ejecutar el método sin necesidad de mostrar nada por consola.

Salu2

edioswaldo

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 10
    • Ver Perfil
Re:Redondear a dos decimales con Java clase DecimalFormat genera String CU00644B
« Respuesta #2 en: 14 de Septiembre 2015, 18:13 »
Muchas gracias por el consejo, lo tomare muy en cuenta para los próximos ejercicios, aunque mas lo hice asi  de presentar por pantalla para evitar la fatiga de crear el objeto y visualizar jajaja. Pero gracias por la correción al ejercicio.

Saludos cordiales.


 

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