Testar decimais em float

6 respostas
guilhermetonetto

Dae pessoal,

Assim talvez a minha dúvida possa ser uma barbada, mas procurei aqui no fórum e não achei nada parecido com esta dúvida… la vai ela…

Eu estou fazendo um relatório no iReport , e preciso fazer o seguinte teste … o campo é float …e preciso testar as casas decimais dele tipo… se as casas decimais for tudo ‘0’ seto o valor inteiro e se for >0 seto as casas decimais , exemplo:

4,000 ---- seta 4
4,125 — seta 4,125

[]'s

6 Respostas

guilhermetonetto

pensando em outra possibilidade
seria como testar se este float recebeu um valor inteiro
pq 4,000 é um número “inteiro”

Odyo

Cara,

resolvi seu problema de um jeito um tanto quanto tosco …
acredito que deve ter algo mais interessante mas é apenas uma idéia …

public static void main(String[] args)
{

	double a = 5.125;
	
	if ( (int)a -a != 0)
		System.out.println((int)a - a);
}

espero que te ajude ou pelo menos te dê algumas idéias

guilhermetonetto

valeu brother por ter respondido , sim esta é uma maneira , tbem tem aquela mais gambiarra ainda de transformar pra string , da um indexOf() para achar o “.” depois da um substring , e transforma o que tem depois do “.” em inteiro e testa se é != 0 hehehe …funciona :slight_smile:

mas tem uma forma tbem q é com o BigDecimal() , essa forma vc passa um valor ali e ele testa se é inteiro ou double , mas para implementar isso no iReport não to conseguindo.

mas valeu por responder brother

[]'s

Andre_Brito

Recentemente eu usei um DecimalFormat pra formatar as casas depois da vírgula e arredondar (na verdade, arredonda sozinho).
Tenta dar uma olhada nisso.

guilhermetonetto

dedejava

funciona sim , DecimalFormat, mas usando a BigDecimal tbem tenho o resultado esperado,

mas o problema é que tenho que implementar isso no iReport , e não é um campo passado por parametro , é um field …

fiz varios testes mas nao consegui resolver isso dentro do ireport

mas valeu ae []'s

Andre_Brito

Hm…
Uma alternativa é tratar isso na aplicação e mandar pronto pro iReport.

Abraço.

Criado 11 de abril de 2008
Ultima resposta 11 de abr. de 2008
Respostas 6
Participantes 3