Olá pessoal,
Não acredito que vou postar isso, mas incrivelmente não estou conseguindo fazer uma divisão! :shock:
É, eu sei mas isso é vergonhoso :oops:
bom, vamos lá…
Tenho um arraylist carregado, dai estou tentando dividir 100 pelo tamanho dele, para simplesmente ir atualizando uma progressBar, conforme ele vai lendo o array.
Mas qualquer valor que eu coloque para ele dividir pelo tamanho (100, 200, 500), ele dá 0.0 ou 0.
Alguém pode me ajudar, pls???
double valor = 100/conteudo.size();
System.out.println(100+"/"+conteudo.size()+" = "+valor);
for (int i = 0; i < conteudo.size(); i++) {
obtendoBar.setValue((int) valor*i);
System.out.println(valor*i);
linha = conteudo.get(i);
//faz mais um monte de coisas dentro deste FOR, mas o erro ta aqui!
}
Desde já agradeço,
e desculpem a ignorância! rsrsrsrsrsrs
A divisão de um número inteiro por outro número inteiro é um número inteiro, ou seja, no seu caso sempre vai dar 0 (por exemplo, 100 / 200 é zero).
Divida um número de ponto-flutuante (por exemplo, 100.0) por um número inteiro para obter um número de ponto-flutuante (por exemplo, 100.0 / 200 é 0.5).
entanglement,
nuss, valew man, era isso mesmo!
Noss que falta de atenção! :?
Valew mesmo!
Isso não é falta de atenção.
Você não ouviu falar de “herança maldita”?
Pois é, isso é uma “herança maldita” da linguagem C, onde isso é o comportamento esperado, mas quebra as pernas de qualquer um.
Outra herança maldita da linguagem C é a declaração de arrays. Quando você faz a seguinte declaração:
int a[10];
você define um array que vai de 0 até 9 e tem 10 posições.
Em Fortran o array vai de 1 até 10 e em VB o array vai de 0 até 10.
[quote=entanglement]Isso não é falta de atenção.
Você não ouviu falar de “herança maldita”?
Pois é, isso é uma “herança maldita” da linguagem C, onde isso é o comportamento esperado, mas quebra as pernas de qualquer um.
Outra herança maldita da linguagem C é a declaração de arrays. Quando você faz a seguinte declaração:
int a[10];
você define um array que vai de 0 até 9 e tem 10 posições.
Em Fortran o array vai de 1 até 10 e em VB o array vai de 0 até 10. [/quote]
Não! Ainda nao tinha ouvido falar disso não!
Pensei que fosse algo na conversão entre os tipos primitivos…
Oo
Vou pesquisar, mais sobre o assunto!
Obrigado man
Achava que o Fortran tinha o comportamento igual ao do Basic, mas ele parece ter o comportamento do C. Vejam:
program test
integer i
integer j
real k
i = 100
j = 200
k = 100 / 200
! imprime 0.0000000
print *, k
! imprime 0.50000000
k = 100.0 / 200.0
print *, k
end program test