Oi galera, perdoem se a dúvida parecer trivial demais, mas faz pouco tempo que comecei a brincar com C.
A questão é que preciso usar um %f para pedir um valor, mas o problema é que esse valor em ponto flutuante não fica "exatamente como digite", eu preciso que ele seja exatamente aquilo que foi digitado para fazer os cálculos. Não estou falando de "imprimí-lo exatamente como foi recebido", pois isso seria bem simples, apenas usar um %.2f, por exemplo resolveria, estou falando de "manipulá-lo" assim como recebi. Para exemplificar melhor, no trecho a seguir eu peço um número float e imprimo-o logo em seguida, note que o valor impresso não é o mesmo, como faço para que o valor seja realmente o digitado? Preciso dessa precisão para os cálculos em um algorítimo que faz contas (isoladas) também com o último, com os "centavos".
main(){
float num;
//tente digitar numeros como 126.56
printf("\nEntre com o valor em reais: \n");
scanf("%f",&num);
printf("\nNum= %f Valor %f\n",num);
}
Esse código imprime: 126.559998.
Para imprimí-lo precisamente é fácil, mas o que preciso é "manipulá-lo" como se ele fosse realmente 126,55 para cálculos onde até a segunda casa depois da vírgula é relevante.
Não achei resposta na net. Agradeço desde já qualquer ajuda.
A questão é que preciso usar um %f para pedir um valor, mas o problema é que esse valor em ponto flutuante não fica "exatamente como digite", eu preciso que ele seja exatamente aquilo que foi digitado para fazer os cálculos. Não estou falando de "imprimí-lo exatamente como foi recebido", pois isso seria bem simples, apenas usar um %.2f, por exemplo resolveria, estou falando de "manipulá-lo" assim como recebi. Para exemplificar melhor, no trecho a seguir eu peço um número float e imprimo-o logo em seguida, note que o valor impresso não é o mesmo, como faço para que o valor seja realmente o digitado? Preciso dessa precisão para os cálculos em um algorítimo que faz contas (isoladas) também com o último, com os "centavos".
main(){
float num;
//tente digitar numeros como 126.56
printf("\nEntre com o valor em reais: \n");
scanf("%f",&num);
printf("\nNum= %f Valor %f\n",num);
}
Esse código imprime: 126.559998.
Para imprimí-lo precisamente é fácil, mas o que preciso é "manipulá-lo" como se ele fosse realmente 126,55 para cálculos onde até a segunda casa depois da vírgula é relevante.
Não achei resposta na net. Agradeço desde já qualquer ajuda.
Comment