Galera,
To tentando fazer um cálculo de rateio no java, más acho que ta dando erro de arredondamento, ou sei la. Saca só:
Eu tenho 3 variáveis:
gasto (gasto de uma pessoa)
valortotal (valor total de gastos de todoas as pessoas somados)
valorrateio (valor que precisa ser rateado)
A politica é rateio simples (quem gastar mais recebe mais pelo rateio e vice-e-versa). Logo, fiz o seguinte:
valor do rateio para determinada pessoa é = (gastos / valortotal) * valorrateio;
Até ai tudo bem. Levando em conta que o valortota é 18925.56
O problema é que quando eu somo os gastos de todo mundo o valor fica em 17986.54
Agora, por que eu acho que é problema de arredondamento: Por que quando eu faço o rateio assim:
valor do rateio para determinada pessoa é = valorrateio / numerodepessoas
O VALOR FINAL BATE!!! 18925.56!!!
Algúem consegue me ajudar? Vou postar um pedaço do código pra ver se ajuda.
[code]
while(rs4.next()){
garbage = new Vector();
for(int a = 1; a <= 24 ; a++ ){
garbage.addElement(rs4.getObject(a));
}
if((garbage.get(15) != null) && (garbage.get(23) == null)){
String valor = trataValor(garbage, 15);
gastos = gastos + Double.parseDouble(valor);
}
}
estevalorrateio = ((gastos / valordanota )* valorrateio);
//estevalorrateio = valorrateio / 61 aki da certo;
gastos = gastos + estevalorrateio;
gastosdocentro = gastosdocentro + gastos;
}
gastototalimportacao = gastototalimportacao + gastosdocentro; //esse seria o valor total[/code]