[RESOLVIDO] Erro na divisão

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. :frowning:
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! :smiley:

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

:smiley:

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