Autor Tema: Java Redondear dos o mas decimales cálculo impuestos porcentaje precio CU00907C  (Leído 3988 veces)

PatAs

  • Sin experiencia
  • *
  • Mensajes: 19
  • ¿Libre...? - Solo cuando pienso y aprendo!!
    • Ver Perfil
Buenas noches. Presento código como posible solución al ejercicio propuesto CU00907C del curso avanzado de Java.

Cordial saludo.

Ejercicio:
Crea un programa para el cálculo del importe final a partir del importe inicial y un porcentaje de impuestos. El importe inicial y el porcentaje de impuestos deben solicitarse al usuario. El programa debe mostrar el resultado ateniéndose a estas reglas: debe mostrarse el impuesto como resultado de calcular el importe inicial por el porcentaje dividido entre 100, con precisión de dos decimales y redondeo al entero más próximo o en caso de equidistancia, redondeo al entero mayor. Debe mostrarse el importe final como resultado de sumar el importe inicial con el impuesto, por tanto endrá
precisión de dos decimales.
Ejemplo de resultados a obtener:
Por favor introduzca el importe inicial: 0.70
Por favor introduzca el porcentaje de impuestos: 5
El impuesto a pagar es: 0.04
El importe final es: 0.74


Código: [Seleccionar]
package CU00907C;
import CU00903C.EntradaPorTeclado;

/**
 * Write a description of class TestCalculoPrecio here.
 *
 * @author (Arnaldo R Martinez)
 * @version (16-Ago-2017) - Ejercicio propuesto por aprenderaprogramar.com
 */
public class TestCalculoPrecio {
public static void main (String [] args) {
double importeInicial = 0.0;
int porcentajeImpuestos = 0;
EntradaPorTeclado entrada = new EntradaPorTeclado();
System.out.println("Comienza el programa.");
System.out.println("Por favor ingrese el importe inicial");
entrada.setEntrada();
importeInicial = Double.valueOf(entrada.getEntrada());
System.out.println("Por favor ingrese el porcentaje correspondiente a impuestos");
entrada.setEntrada();
porcentajeImpuestos = Integer.valueOf(entrada.getEntrada());
System.out.println("Impuesto a pagar: " +fijarNumero(impuestoAPagar(importeInicial,porcentajeImpuestos),2));
System.out.println("Importe final: " +fijarNumero(calculoPrecioFinal(importeInicial,impuestoAPagar(importeInicial,porcentajeImpuestos)),2));
}

public static double calculoPrecioFinal(double valorInicio,double valorDescuento) {
double precioFinal = valorInicio + valorDescuento;
return precioFinal;
}

public static double impuestoAPagar(double valorInicio, int descuento) {
double totalImpuesto = 0.0;
totalImpuesto = valorInicio * descuento/100;
return totalImpuesto;
}

public static double fijarNumero(double numero,int digitos) {
double resultado;
resultado = numero * Math.pow(10,digitos);
resultado = Math.round(resultado);
resultado = resultado/Math.pow(10,digitos);
return resultado;
}
}
Código: [Seleccionar]
package CU00903C;

import java.util.Scanner;
/**
 * Para obtener entradas por teclado
 *
 * @author () Foro de aprenderaprogramar.com
 * @version (01_2016) -
 * Corregido (16-Ago-2017) por feedback desde aprenderaprogramar.com
 */
public class EntradaPorTeclado{
     //Campos de la clase
    private String entrada;
private Scanner entradaTcl;
    //Constructor
    public EntradaPorTeclado(){
        entrada= "";
        entradaTcl = new Scanner(System.in);
    }
   
public void setEntrada() {
entrada = entradaTcl.nextLine();
}

    public String getEntrada(){
        return entrada;
    }
}
« Última modificación: 22 de Septiembre 2017, 19:13 por Ogramar »

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2660
    • Ver Perfil
Buenas, el ejercicio está bien resuelto, usando una de las estrategias planteadas en el curso. Otra forma de resolverlo sería usando la clase BigDecimal, como se hace en este hilo: https://www.aprenderaprogramar.com/foros/index.php?topic=5672.0

Salu2

 

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