Float sem .0

Como posso remover aquele ponto e zero de um valor em uma variável Float, quando este for inteiro ?

Bem vindo ao fórum!

Depende.

Lembre-se que existem dois tipos de ponto flutuante em Java: float e double. Se você quer truncar o resultado, pode fazer um cast para int e as casas decimais serão ignoradas. Agora, se você quer formatar o valor para imprimi-lo, pesquise por String.format.

Obrigado pela dica.
Mas só tô achando Tópicos sobre zeros à esquerda.
Eu não quero ignorar as casas decimais se elas forem diferentes de 0, mas se forem quero que mostre apenas o número sem “.0”.

Se não me engano, ha um “bug report” (que ainda não foi resolvido) reclamando justamente disso (o Java imprimir “.0” em vez de simplesmente não imprimir esse “.0” quando o número é muito próximo a um número inteiro. )

De qualquer maneira, se isso realmente lhe incomoda, faça algo do tipo

double x = 3.0;
if (x == Math.rint (x)) {
    Formate o valor como um inteiro;
} else {
    Use a formatação padrão.
}

Edit.:
Obtive sucesso testando uma conversão (como é simples e eu não sabia ;x).
Segue o código:

class decimal{
  public static void main(String args[]){
     int inteiro = 0;
     double real = 90.98;

     inteiro = (int)real;
     System.out.println(inteiro);
  }
}

Aplicando na estrutura de decisão, surge um problema:

   if (dx == Math.rint (dx)) {
        int dx2 = (int)dx;
   }else{
        double dx2 = dx;
   }

Pensei em fazer assim para resolver qualquer um dos casos, porém quando eu ‘escrevo’ a variável dx2, surge o erro de que ela não foi declarada. Se declaro como int, não posso usar o double no Else, se declaro como Double, não posso usar a parte do If.
Help! ;x

/********************************************************/

Peguei este código neste tópico.

[code]
import java.util.ArrayList;
import java.util.List;

public class Teste {
void addValor(List a) {
a.add(12312.123);
}

public static void main(String[] args) {
    ArrayList<Double> mylist = new ArrayList<Double>();
    Teste p1 = new Teste();
    p1.addValor(mylist);
    Double p2 = mylist.get(0) ;
    int p3 = (int)p2.doubleValue();
    System.out.println(p2);
       
}

}[/code]

Qual a intenção do ?
É algo que é para ser substituído ? Se sim, pelo quê ?

Esse tal é Generics quer dizer nesse caso que seu list so pode adicionar elementos do tipo double.

ja que vc resolveu seu problema fazendo casting vc tb pode formatar seu numero com DecimalFormat.

Na verdade, minha solução para os decimais não foi suficiente. Não compila.

[code]double num = 2123.123;

DecimalFormat format = new DecimalFormat(“0”);

String numeroFormatado = format.format(num);

double numeroFinal = Double.valueOf(numeroFormatado);

System.out.println(numeroFinal);[/code]

Se vc puder usar a String no final ai nem precisa fazer o parse pra double ai vc usa:

[code]double num = 2123.123;

DecimalFormat format = new DecimalFormat(“0”);

String numeroFormatado = format.format(num);

System.out.println(numeroFormatado);
[/code]

Era isso?

Can’t find symbol DecimalFormat.

Tenho que importar alguma biblioteca para usar isso?

Outra coisa,
Tem como eu declarar uma variável dentro de uma estrutura de decisão (If e Else) ?

Tem que importar DecimalFormat se estiver usando Eclipse ctrl + shift + o
importa pra vc direto.

Tem como vc declarar dentro do corpo de if e esle. Nao tem como vc declarar ela dentro da verificaçao.

Resolvido então. Obrigado pessoal.
Aprendi a excluir as casas decimais, mas de qualquer forma não tem como mudar.
Eu queria praticamente o que o entanglement postou, mas com isso eu precisava declarar uma variável dentro do corpo If…Else como Inteira para receber o valor.

 if (dx == Math.rint (dx)) {  
      int dx2 = (int)dx;  
 }else{  
      double dx2 = dx;  
 }  

Na realidade é possível fazer o que você quer. A classe Number é superclasse de todos os wrappers de números (Integer, Double, Float, Byte, Short, Long). Portanto, é possível fazer:

double x = metodoQueRetornaSeiLaQuanto();         
Number value;           
if (x == Math.rint(x)) {
	value = (int) x;    
} else {                
	value = x;          
}                       
// faça o que for preciso com seu Number
// como um exemplo, imprimo a classe dele (Integer ou Double dependendo do valor original)
System.out.println(value.getClass());

Consegui! Muito obrigado a todos, especialmente marcobiscaro2112.
Funcionou perfeitamente.

não sei se entendi errado…

mas o código abaixo não seria mais simples?

double comDecimal = 0.1;
double semDecimal = 2.0;

DecimalFormat df = new DecimalFormat("##.##");

System.out.println( df.format(comDecimal) );
System.out.println( df.format(semDecimal) );

claudiom,
Tentei usar a função DecimalFormat, mas a questão é que são várias variáveis. Neste código você está usando 2 variáveis, uma com decimal e outra sem. No meu caso eu uso uma variável a que pode ou não ter valor decimal. Então verifico com o Math rint, então se o valor decimal for nulo, preciso guardar esse valor em uma variável do tipo Int, senão fica no tipo double.