Olah pessoal… estou com um problema ao somar numeros float.
eu fiz uma calculadora e ao somar 0.1 com 0.1 por varias vezes ele perde a precisao.
e assim com todos os numeros decimais. Obs. os numeros inteiros naum tem esse problema.
Ex:
0,1+0,1=0,2
0,2+,01=0,3
0,3+,01=0,4
0,4+,01=0,5
0,5+,01=0,6
0,6+,01=0,70000005
0,70000005+,01=0,80000001
Alguem sabe por qual motivo isso ocorre??
Vlw desde jah galera!
tenta usando a classe java.math.BigDecimal
abraços!
Usar como?? ql funcao?
Ai abaixo tah a soma feita no console.
0.2
0.3
0.4
0.5
0.6
0.70000005
0.8000001
0.9000001
1.0000001
1.1000001
1.2000002
1.3000002
1.4000002
1.5000002
1.6000003
Float eh assim mesmo…usa o metodo add() de BigDecimal.
[quote=mynameisflaw]tenta usando a classe java.math.BigDecimal
abraços![/quote]
usar como essa classe???
ai abaixo tah o exemplo q eu fiz no console…
0.2
0.3
0.4
0.5
0.6
0.70000005
0.8000001
0.9000001
1.0000001
1.1000001
1.2000002
1.3000002
1.4000002
1.5000002
1.6000003
ee vlw
como eu disse antes,
usa o metodo add() de BigDecimal…veja a API da classe.
Dá uma lida nesses tópicos:
http://www.guj.com.br/posts/list/68086.java#357907
http://www.guj.com.br/posts/list/84121.java#448928
Você vai entender melhor a questão do float. E veja se só converter para double já não te ajuda.
[quote=agostinho]como eu disse antes,
usa o metodo add() de BigDecimal…veja a API da classe.[/quote]
noossa cara…
naum entend nada como utilizar essa funcao…
seria possivel vc me mandar um exemplo ou um link??
vlw
[quote=ViniGodoy]Dá uma lida nesses tópicos:
http://www.guj.com.br/posts/list/68086.java#357907
http://www.guj.com.br/posts/list/84121.java#448928
Você vai entender melhor a questão do float. E veja se só converter para double já não te ajuda.[/quote]
vlw cara…
ainda tah dando uns problemas mas ilumino bastante esse link…
abraco
do mesmo jeito q vc usaria um metodo de qq outra classe…
BigDecimal big1 = new BigDecimal(5404.34);
BigDecimal big2 = new BigDecimal(34.5);
System.out.println( big1.add(big2) );