Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: ArielDVB en 01 de Mayo 2016, 22:27
-
Hola. Les dejo mi solución al ejercicio CU00907C del tutorial de programación Java avanzada de aprenderaprogramar:
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 tendrá precisión de dos decimales.
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.Scanner;
public class TestImpuesto{
public static void main(String[]args){
System.out.print("Por favor introduzca el importe inicial: ");
Scanner scan = new Scanner(System.in);
BigDecimal importe = BigDecimal.valueOf(Double.valueOf((scan.nextLine())));
System.out.print("por favor introduzca el porcentaje de impuestos: ");
BigDecimal porcentaje_impuesto = BigDecimal.valueOf(Double.valueOf((scan.nextLine())));
BigDecimal impuesto = importe.multiply(porcentaje_impuesto).divide(BigDecimal.valueOf(100.0));
impuesto = impuesto.setScale(2,RoundingMode.HALF_UP);
System.out.println("El impuesto a pagar es: "+impuesto+"\nEl importe final es: "+importe.add(impuesto));
}
}
Desde ya muchas gracias por leerme.
-
Hola Ariel. He revisado tu código y,en líneas generales es correcto.Has utilizado bien la clase BigDecimal que en el fondo es de lo que se trataba el ejercicio.
Otra forma de hacerlo sería utilizando diferentes clases para la entrada de teclado y para los cálculos,en vez de hacerlo en el main.
Una posible solución que se me ocurre seria:
import java.math.BigDecimal;
import java.math.RoundingMode;
public class CalculadoraImpuesto{
public BigDecimal calculoImpuesto(BigDecimal importe,BigDecimal porcentaje_impuesto){
BigDecimal calculoImpuesto =importe.multiply (porcentaje_impuesto).divide(BigDecimal.valueOf(100.0));
calculoImpuesto = calculoImpuesto.setScale(2,RoundingMode.HALF_UP);
return calculoImpuesto;
}
}
import java.util.Scanner;
import java.math.BigDecimal;
public class EntradaTeclado {
public BigDecimal entradaTeclado(){
Scanner scan = new Scanner(System.in);
BigDecimal resultado = BigDecimal.valueOf(Double.valueOf(scan.nextLine()));
return resultado;
}
}
import java.math.BigDecimal;
import java.math.RoundingMode;
public class TestImpuesto{
public static void main(String[]args){
BigDecimal impuesto,importe,porcentaje_impuesto;
CalculadoraImpuesto d=new CalculadoraImpuesto();
EntradaTeclado f=new EntradaTeclado();
System.out.print("Por favor introduzca el importe inicial: ");
importe=f.entradaTeclado();
System.out.print("por favor introduzca el porcentaje de impuestos: ");
porcentaje_impuesto = f.entradaTeclado();
impuesto=d.calculoImpuesto(importe,porcentaje_impuesto);
System.out.println("El impuesto a pagar es: "+impuesto+"\nEl importe final es: "+importe.add(impuesto));
}
}
Un saludo