OPa…
eu estou com o seguinte problema…
estou fazendo uma calculadora em Java, porem quando faço calculos em base Decimal eu uso variaveis to tipo float, mesmo que o resultado sexa exata com 2 x 2… quando jogo o valor para um JTextField ele aparece “4.0”
nesse caso eu gostaria que ele se comportasse como ineiro e aparecesse apensa “4”, porem não posso usar Integer.valueOf(), pois ele pode ter o resultado nao exato como 4.22222
Existe alguma forma de saber se um float não tem nada alem de 0 apos a virgula?
ou alguma mascara que eu possa colocar nele?
Obrigado pela atenção!!
Tente formatar o valor com a classe DecimalFormat… mais ou menos assim:
DecimalFormat decimalFormat = new DecimalFormat("0.#");
String valor = decimalFormat.format(meuValor);
Acho que o pattern é esse mesmo. O “#” é para escrever se tiver alguma coisa depois da vírgula e o “0” é para colocar zero antes da vírgula caso o valor seja um decimal menor que 1 (mais ou menos isso).
Não tenho como testar aqui, mas se não for esse o pattern, dá uma olhada na documentação.
Abraço.
fiz um chuncho pior que isso
hehe
mas funcionou da forma que eu queria
texto.setText(String.valueOf(Integer.parseInt(aux1.substring(0,aux1.indexOf(".")))));
float num1 = 2;
float num2 = 2;
int divisao = (int) (num1 / num2);
System.out.println(divisao);
Casting…
EDITED
Ops…assim ele sempre retorna apenas o inteiro…
Transforme em String, use o indexOf para verifica o que vem depois da virgula…se for apenas 0, vc coloca isso em uma variável inteira com casting, senão, vc coloca esse valor em uma variável float…
É o modo mais fácil!