não sei te dizer o pq do problema, mas em java o double tem um erro de precisão.
por exemplo:
double val = 0;
for (int i = 0; i < 10; i++) {
val += 0.1;
System.out.println(val);
}
saída:
0.1
0.2
0.30000000000000004
0.4
0.5
0.6
0.7
0.7999999999999999
0.8999999999999999
0.9999999999999999
se vc estiver precisando de precisão (essa frase ficou estranha ) use a classe BigDecimal no lugar de double.
adriano_si
Tenta assim:
Double D = 10.2;
double d = 0.0;
d += (10.2*1000);
System.out.println(D);
System.out.println(d);
Depois assim
Double D = 10.2;
double d = 0.0;
d += (10.2*10);
System.out.println(D);
System.out.println(d);
Dá mais raiva ainda... ou seja a bronca é só com 100
aurelio_silva
mario.fts:
não sei te dizer o pq do problema, mas em java o double tem um erro de precisão.
por exemplo:
double val = 0;
for (int i = 0; i < 10; i++) {
val += 0.1;
System.out.println(val);
}
saída:
0.1
0.2
0.30000000000000004
0.4
0.5
0.6
0.7
0.7999999999999999
0.8999999999999999
0.9999999999999999
se vc estiver precisando de precisão (essa frase ficou estranha ) use a classe BigDecimal no lugar de double.
Acho que é isso mesmo, porque se trocar(no meu exemplo) 10.2 por 10.3 ele funciona e se trocar 100 por 10 ou 1000 e manter 10.2, também funciona…que louco isso…
Valeu
aurelio_silva
adriano_si:
Tenta assim:
Double D = 10.2;
double d = 0.0;
d += (10.2*1000);
System.out.println(D);
System.out.println(d);
Depois assim
Double D = 10.2;
double d = 0.0;
d += (10.2*10);
System.out.println(D);
System.out.println(d);
Dá mais raiva ainda... ou seja a bronca é só com 100
Bota raiva nisso....vc não imagina como foi dificil descobrir isso..rsrs