números depois da vírgula! me ajudem!!!

números depois da vírgula! me ajudem!!!

por Liliane Machado -
Número de respostas: 3

OI!!

Então, preciso da ajuda de vcs! quando eu testo com o printf as minhas funções, percebi que todas elas estão me dando valores com 6 casas depois da vírgula!! tem alguma forma de aumentar a quantidade?

desde já, muito obrigada!

Liliane.

Em resposta à Liliane Machado

Re: números depois da vírgula! me ajudem!!!

por Francisco Reverbel -
Tem sim. Por exemplo: para imprimir com 10 casas depois da vírgula, troque o "%f" por ".10f".

Em geral você pode usar uma especificação de formato como "%8.4f", onde o número que vem antes do ponto (o 8, nesse caso) especifica a largura mínima do campo que será impresso (o número ocupará um campo com pelo menos 8 colunas, podendo ocupar mais colunas se necessário) e o número que vem depois do campo especifica o número de casas depois da vírgula. Assim, "%8.4f" diz que o float deve ser impresso com 4 casas depois da vírgula e o número impresso (todo ele: a parte que vem antes da vírgula, a vírgula e as casas depois da vírgula) deve ocupar pelo menos 8 colunas. No primeiro exemplo acima ("%.10f") a largura mínima do campo não é especificada, só o número de casas depois da vírgula.

Pode-se também usar especificações "%g" para impressão de floats. Também podemos escrever coisas como "%16.10g", etc. O "%g" é muito útil. Ele funciona como o "%f", com duas diferenças:
  1. Números muito pequenos ou muito grandes são automaticamente impressos na notação científica.
  2. São omitidos os zeros finais após a vírgula decimal (em vez de 6.300000 aparece só 6.3) . Quando não houver nada depois da vírgula, a vírgula (ponto) também é omitida (em vez de 6.000000 aparece só 6).


Em resposta à Liliane Machado

Re: números depois da vírgula! me ajudem!!!

por Rebeca Bayeh -

Dentro do printf, no %f, tente colocar depois do "%" um ponto final e o numero de casas que deseja que ele imprima depois da virgula ;o)

ex: printf("%.8f", f);

espero nao ter dito nenhuma besteira...