Olá,
Estou com um problema em um algorítimo.
Quando faço as seguintes divisões:
15/0,15, o resultado esperado deveria ser 100.
17/0,17, o resultado esperado deveria ser 100.
Porém, dependendo do tipo utilizado para definição das variáveis, float ou double, o resultado fica diferente.
Pra o 15/0,15 por exemplo, funciona com um dos tipos e não funciona com o outro, apresentando como resultado 99.999…
Sendo que para o 17/0,17 funciona exatamente com o tipo contrário do 15/0,15, mas não funciona com o outro tipo.
Ou seja, não estou conseguindo fazer com que para os dois caso eu tenha o resultado esperado. Abaixo segue o trecho de código que está gerando o problema.
dados.setLrgm((dados.getLargura()/100d));
if ((dados.getLrgm()*dados.getQnt()) < dados.getX()) {
return 0;
}
dados.setQntmaxXY(dados.getX()/dados.getLrgm());
dados.setQntmaxXY é que está recebendo o valor com problema.
dados.getX() é int, os outros estão como double. Porém já tentei como float e quando funciona para um dos casos acima, não funciona para o outro.
Obrigado.