gostaria de fazer algo com desconto no caso, eu teria 10% para determinado valor 15% e para outro valor 5%
no caso eu precisaria de um if e else, mais não sei como fazer com que o net bens reconheça a porcentagem.
essa foi minha tentativa mais não saiu muito legal.
se puder ajudar fico grato.
package javaapplication9;
import javax.swing.JOptionPane;
public class exercicio {
public static void main (String[]args){
double valorc,valord,valor1,valor2,valor3;
valorc = Integer.parseInt(JOptionPane.showInputDialog("digite o valor da compra " ));
if (valorc > 500) {
valor1 = 0.15;
valord = valor1*valorc;
JOptionPane.showMessageDialog(null,"o valor da sua compra é "+valorc+"com desconto de 15% fica"+valord);
}
else if(valorc < 500){
valor2 = 0.10;
valord = valorc * valor2;
JOptionPane.showMessageDialog(null,"o valor da sua compra é "+valorc+"com desconto de 15% fica"+valord);
}
else (valorc < 200 ) {
valor3 = 0.05;
valord = valorc * valor3 ;
JOptionPane.showMessageDialog(null,"o valor da sua compra é "+valorc+"com desconto de 15% fica"+valord);
}
}
}
o erro é
Exception in thread “main” java.lang.NumberFormatException: For input string: “400.00”
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:492)
at java.lang.Integer.parseInt(Integer.java:527)
at javaapplication9.exercicio.main(exercicio.java:8)
Java Result: 1
public static void main(String[] args) {
double vlrCompra, vlrDesconto, porcentagem;
vlrCompra = Double.parseDouble(JOptionPane.showInputDialog("Digite o valor da compra: "));
if (vlrCompra >= 500) {
porcentagem = 15;
vlrDesconto = (porcentagem * vlrCompra)/100;
vlrDesconto = vlrCompra - vlrDesconto;
JOptionPane.showMessageDialog(null, "O valor da sua compra é " + vlrCompra + " com desconto de 15% fica " + vlrDesconto);
} else if (vlrCompra <= 200) {
porcentagem = 5;
vlrDesconto = (porcentagem * vlrCompra)/100;
vlrDesconto = vlrCompra - vlrDesconto;
JOptionPane.showMessageDialog(null, "O valor da sua compra é " + vlrCompra + " com desconto de 5% fica " + vlrDesconto);
} else if (vlrCompra < 500) {
porcentagem = 10;
vlrDesconto = (porcentagem * vlrCompra)/100;
vlrDesconto = vlrCompra - vlrDesconto;
JOptionPane.showMessageDialog(null, "O valor da sua compra é " + vlrCompra + " com desconto de 10% fica " + vlrDesconto);
}
}
bem minha situação meio que mudou um pouco
esse código esta rondando bem mais está errado no resultado, não sei porque mais o loop esta parando sempre no 15% e também tem algum erro na matemática
nessa conta que fiz de porcentagem ! se puderem me ajudar ficaria grato.
package javaapplication9;
import javax.swing.JOptionPane;
public class exercicio {
public static void main (String[]args){
double valorc,valord,valor1,valor2,valor3;
valorc = Double.parseDouble(JOptionPane.showInputDialog("digite o valor da compra " ));
if (valorc >= 500) {
valor1 = 15;
valord = (valor1*valorc)/100;
JOptionPane.showMessageDialog(null,"o valor da sua compra é "+valorc+"com desconto de 15% fica"+valord);
}
else if(valorc <= 200){
valor2 = 10;
valord = (valor2 * valorc ) / 100;
JOptionPane.showMessageDialog(null,"o valor da sua compra é "+valorc+"com desconto de 15% fica"+valord);
}
else if (valorc < 500 ) {
valor3 = 5;
valord = (valor3 * valorc) / 100 ;
JOptionPane.showMessageDialog(null,"o valor da sua compra é "+valorc+"com desconto de 15% fica"+valord);
}
}
}
acredito que meu erro esta concentrado na formula para calcular a porcentagem mais não consigo ver claramente qual é a formula correta para calcular corretamente a porcentagem.
bem consegui consertar a conta eu estava fazendo algo tipo
valor2 = 5
valor1 = (valordesconto*valor2) / 100;
mais para descontar eu tinha que colocar
valor1 = (valordesconto - valor1);
acho que é isso se tiver errado por favor me concerte.
public static final DecimalFormatSymbols REAL = new DecimalFormatSymbols(new Locale("pt","BR"));
public static void main (String[]args){
double valor;
valor = Double.parseDouble(JOptionPane.showInputDialog("digite o valor da compra " ));
JOptionPane.showMessageDialog(null,"o valor da sua compra é " + mascaraDinheiro(valor) + ". Com desconto de " + obterProcentagem(valor) + "% fica "+ mascaraDinheiro(obterValorComDesconto(valor)));
}
public static double obterValorComDesconto(double valor) {
return valor - (valor * obterProcentagem(valor)) / 100;
}
public static int obterProcentagem(double valor) {
if(valor >= 500)
return 15;
else if(valor <= 200)
return 10;
else
return 5;
}
public static String mascaraDinheiro(double teste) {
return new DecimalFormat("¤ ###,###,##0.00", REAL).format(teste);
}