Problema com exercicio em java

10 respostas
olivercld

//dado o preço de um produto e o percentual de desconto
//calcular o preço final

package exerc_aula;
import javax.swing.JOptionPane;

public class Main {

   
    public static void main(String[] args) {

        float produto, valor_desconto;// valor_calculado;
        int desconto;

        produto = Float.parseFloat(JOptionPane.showInputDialog("digite preco do produto .:"));
        desconto = Integer.parseInt(JOptionPane.showInputDialog("digite o desconto .:"));
            valor_desconto = (produto - desconto)/100;
           // valor_calculado = produto - valor_desconto;
            JOptionPane.showMessageDialog(null,"o valor final e .: "  +valor_desconto);

    }

}
na aula meu prof diz que era assim

valor_desconto = (produto - (desconto /100));
so que dessa form fazendo na calculdora nao da certo nao e da forma que eu fiz nocodigo acima na cal e no codigo da certo
o que me dizem ? ta certo da forma que fiz como pede o enunciado ? ou nao

10 Respostas

kenneth

Fala brow,

Se voce quer saber o preco do produto com o desconto, da pra fazer:

precoFinal = precoProduto * (1 - (desconto / 100))

Abraco.

ViniGodoy

O certo é

double preco = produto - produto * desconto/100;

Ou, aplicando a propriedade distributiva:

double preco = produto * (1 - desconto/100);
dsystem

Oi olivercld

A conta correta é

preco = produto - ((produto * desconto)/100) ;
S

Cara, faz assim

valor_desconto = produto - (produto * (desconto/100))

da forma que você fez não deveria estar dando certo na calculadora porque seguindo o seu exemplo seria
produto = 100
desconto = 10%

valor_desconto = (100- 10)/100;
valor_desconto = (90)/100
valor_desconto = 0,9

da forma que eu fiz seria
valor_desconto = 100 - (100 * (10 / 100))
valor_desconto = 100 - (100 * 0,1)
valor_desconto = 100 - 10
valor_desconto = 90

ViniGodoy

Como o povo gosta de parênteses…

OneSr

olivercld antes de você trabalhar com o desconto, deixe-o em double mesmo não utilize um inteiro nesta operação(nem é aconselhável, dito que você terá de trabalhar com valores de ponto flutuante).

o usuário digita por exemplo 5%, então converta para ponto flutuante antes, no caso o usuário digitará 5(inteiro)

desconto = 5 / 100.0 //como você deve saber 5% em Java é 0.05, aqui então é feita a conversão para ponto flutuante

[color=red]ai no valor final basta você fazer o seguinte, como seu professor disse:[/color]

valorFinal = valorFinal - (valorFinal * desconto) // está exatamente como seu professor fez, a diferença é que e fiz o calculo para descobrir a porcentagem antes só isso

[color=red]a segunda maneira seria[/color]

valorFinal = valorFinal - ((valorFinal * desconto)/100.0) // nessa opção perceba que não é necessário calcular o desconto antes, pois o 0.5 é obtido automaticamente nesta operação

olivercld

obrigado galera, OneSr, vinigodoy, sl4ckfx, dsystem, kenneth, se eu esqueçi de alguem me desculpem e o seguinte obrigado mesmo pela ajuda, sou iniciante em java voçes tiraram minha duvida, esse forum e demais parabens a todos me responderam rapidos gostei, seguinte e o java que estou estudando e java estruturado e nao orientado a objeto entao na variavel double eu vou declarar o item que ela ta recebendo exemplo o preco o produto que me disseram, outra questao e ta pedindo pra entrar com preco do produto e percentual de desconto a entrada ta certo né.
galera obrigado mesmo pela ajuda alem da faculdade estou praticando isso em casa fazendo mais valeu abraços.

ViniGodoy

O problema aqui nem era o Java, mas matemática.

OneSr

O problema aqui nem era o Java, mas matemática.
FATO !

e olivercld, não entendi oque você quis dizer nesta última resposta sua…

pelo que entendi aqui você quer algo como cada produto deverá ter um preço e de acordo com o preço ter um desconto, seria isso ?

olivercld

OneSR sim foi que entendeu mais ta respondido a questao obrigado de fato e a matematica mesmo valeu galera.

Criado 4 de outubro de 2010
Ultima resposta 6 de out. de 2010
Respostas 10
Participantes 6