Formato de variáveis

Olá

Estou criando o seguinte código:

     [color=blue]float [/color][color=green]V, Vo, a, ti, tf, t, X, Xo;[/color]

      [color=green]Vo [/color]= Float.valueOf([color=green]V_inicial[/color].getText());
       [color=green]a [/color]= Float.valueOf([color=green]gravidade[/color].getText());
       [color=green]Xo [/color]= Float.valueOf([color=green]P_inicial[/color].getText());
       [color=green]X [/color]= Float.valueOf([color=green]P_final[/color].getText());
       
       [color=green]V [/color]= ([color=blue]float[/color]) Math.sqrt((Math.pow([color=green]Vo[/color], 2)) + (2 * [color=green]a[/color] * ([color=green]X[/color] - [color=green]Xo[/color])));
       
       [color=blue]if [/color]([color=green]V [/color]> 0) {
       [color=green]Resultado.setText[/color]("A velocidade tem o mesmo sentido do eixo, a velocidade final é " +[color=green] V[/color] + " m/s");
        }

o resultado ele dá o seguinte: " [color=black]A velocidade tem o mesmo sentido do eixo, a velocidade final é 90.0 /ms"

Alguém sabe me dizer como faço pra esse “90.0” ser exibido “90” tipo, quando o resultado for inteiro ele mostrar “90”, “65”, "10"etc, quando realmente for decimal “9.5”, “2.3” etc, ele mostrar decimal, alguém sabe dizer se é possível fazer isso ?

Poderia ser mais específico ? Porque os exemplos que vi lá não consegui entender algumas coisas, como o computador vai saber o que é 0.9 ou 9.0 ? pra poder usar o decinalformat

Pra começar, evite fazer contas com float.
O Java foi todo estruturado para funcionar melhor com double; raramente você precisa usar float (na API do Java, por exemplo, só vi coisas no Java2D, para ter idéia).
Veja como é muito mais simples trabalhar com double.
Use “%.0f” para mostrar com 0 casas depois da vírgula.

double V, Vo, a, ti, tf, t, X, Xo;

Vo = Double.parseDouble(V_inicial.getText());
a = Double.parseDouble(gravidade.getText());
Xo = Double.parseDouble(P_inicial.getText());
X = Double.parseDouble(P_final.getText());

V = Math.sqrt((Math.pow(Vo, 2)) + (2 * a * (X - Xo)));

if (V > 0) {
   Resultado.setText(String.format ("A velocidade tem o mesmo sentido do eixo, a velocidade final é %.0f m/s", V));
} 

Tem uma coisa esquisita no seu código. Qual é a razão de você elevar um número ao quadrado e tirar sua raiz quadrada?

Se quiser obter o valor absoluto de um código, use Math.abs(x) em vez de Math.sqrt (Math.pow (x, 2)).

Hum, esqueci que você quer uma formatação condicional, do tipo “90” ou “0.3”.
Para isso é necessário escrever um método separado, já que o Java, como eu já disse, escreve “90.0” em vez de “90”.

Deu certo aqui usando isso:

[color=blue] float[/color] [color=green] V, Vo, a, ti, tf, t, X, Xo[/color];
DecimalFormat [color=green] df[/color] = [color=blue] [/color]new DecimalFormat("");

[color=green] Resultado[/color] .setText(“Movimento acelerado, a velocidade é " + [color=green]df[/color].format([color=green]V[/color] ) + " m/s”);

Mas tipo, com isso ai, se o resultado for, 7.5 por exemplo o resultado sairá mesmo assim ou só vai sair 7 ?

E a questão da matemática está correto porque essa é a fórmula mesmo, eu fiz os testes e deu tudo ceritnho…

Uma forma de fazer exatamente o que você quer é fazer assim:

private static String formataDoJeitoQueVoceQuer (double d) {
    String formatado = Double.toString (d);
    if (formatado.endsWith (".0"))
        return formatado.substring (0, formatado.length() - 2);
    else
        return formatado;
}

A rigor, eu realmente não gosto disso. Não é algo muito exato…

Deu certo aqui, já…vlw pela ajuda…ajudou muito