1
resposta

[Dúvida] Função abs() perde informações de casas decimais

Como relatado em um tópico anterior, a função abs() pode fazer com que ocorra um erro no programa ao calcular e registrar os pontos do jogador. Após fazer testes, percebi que a função abs(), quando utilizada, perde as informações de casas decimais das variáveis. Sendo assim, no código do jogo de adivinhação em questão, se a função abs() for utilizada após a divisão por "2", qualquer valor decimal registrado vai ser perdido.

...
    pontosperdidos=(chute-numerosecreto)/2.0;
    pontos=pontos-abs(pontosperdidos);
    //Neste caso os valores decimais serão perdidos
...

Para que o programa imprima possíveis valores decimais na pontuação é necessário usar a função abs() antes de ser feita a divisão por "2" (ou seja, antes que a conta possa resultar em um número com valores menor que um).

...
    pontosperdidos=abs(chute-numerosecreto)/2.0;
    pontos=pontos-pontosperdidos;
    //Neste caso os valores decimais dos pontos serão registrados
...

Gostaria de saber se existe uma função equivalente à função abs() mas que não perca informações sobre valores menores que um nas variáveis, podendo ser usada em qualquer das "posições" citadas. Obrigado.

1 resposta
Removido a pedido do usuario.