Formatando Número [RESOLVIDO]

Estou fazendo isso por diversão e gostaria de saber porque fica meio tosco uma dízima monstro na tela

import java.text.DecimalFormat;
import javax.swing.JOptionPane;

class trucando_dizimas

{
    public static void main (String args[])
    {
        double n1, n2, resultado;
        n1 = Double.parseDouble (JOptionPane.showInputDialog("Digite o primeiro número"));
        n2 = Double.parseDouble (JOptionPane.showInputDialog("Digite o segundo número"));
        resultado = n1/ n2;
        DecimalFormat resultado = new DecimalFormat("0.00"); (acho que aqui está errado)
        JOptionPane.showMessageDialog(null, "O resultado é: " +resultado);
    }
}

Ah gostaria de saber outras opções pro showMessage, como por exemplo além de null, mudar o ícone e etc.

Valeu! :slight_smile:

Código correto:

[code]import java.text.DecimalFormat;
import javax.swing.JOptionPane;

class trucando_dizimas

{
public static void main (String args[])
{

    double n1, n2, resultado;
    n1 = Double.parseDouble (JOptionPane.showInputDialog("Digite o primeiro número"));
    n2 = Double.parseDouble (JOptionPane.showInputDialog("Digite o segundo número"));
    DecimalFormat df = new DecimalFormat("0.00");     
    resultado = n1/ n2;     
    JOptionPane.showMessageDialog(null, "O resultado é: " + df.format(resultado));
}

}[/code]

Abraços!

O método showMessage do componente JOptionPane possui várias sobrecargas.
Basta pesquisar na API do java sobre as mesmas.

você tem que definir o formato antes… assim:

     DecimalFormat df = new DecimalFormat("0.00");   
     resultado = n1/n2;
     Float valorFormatado = df.format(resultado);

Não entendi definir antes sou bem novo em Java, aliás em programação de modo geral.

não sei se dá problema… posso estar errado… mas você atribui o valor

double n1, n2, resultado;   
n1 = Double.parseDouble (JOptionPane.showInputDialog("Digite o primeiro número"));   
n2 = Double.parseDouble (JOptionPane.showInputDialog("Digite o segundo número"));   

antes de definir o formato da data

DecimalFormat resultado = new DecimalFormat("0.00");

e acho que tem que invocar o método format();

assim:

DecimalFormat df = new DecimalFormat("0.00");   
resultado = n1/ n2;   
JOptionPane.showMessageDialog(null, "O resultado é: " +df.format(resultado));   

agora siml valeu! :stuck_out_tongue: só uma última pergunta:

aquele df format do lado da variável resultado define que ela vai ser de tal formato?

ele retorna o valor que você envia, formatado de acordo com o formato que você escolheu (no caso é o 0,00)

Apenas para melhoria do forum, você colocou “Arredondando número”, mas na verdade deveria ser “Formatando número”
arredondar seria 2.89898556889 para 3.0
de 2.89898556889 para 2.89 é formatação

para melhoria do fórum também…
ja que seu problema foi resolvido

edite seu primeiro post desse tópico e coloque [RESOLVIDO] no assunto…

para ajudar as pessoas que estão com o mesmo problema que você teve…

abraço!

[quote=RenanRosa]Apenas para melhoria do forum, você colocou “Arredondando número”, mas na verdade deveria ser “Formatando número”
arredondar seria 2.89898556889 para 3.0
de 2.89898556889 para 2.89 é formatação[/quote]

Eu quase respondi Math.ceil() e Math.floor()

[quote=drsmachado][quote=RenanRosa]Apenas para melhoria do forum, você colocou “Arredondando número”, mas na verdade deveria ser “Formatando número”
arredondar seria 2.89898556889 para 3.0
de 2.89898556889 para 2.89 é formatação[/quote]

Eu quase respondi Math.ceil() e Math.floor()[/quote]

pois é, esse tópico se encaixa no que estavamos “desabafando” nesses ultimos dias.