Ir ao conteúdo

Posts recomendados

Postado

Olá amigos,

 

Estou mexendo com C a pouco tempo e estou com muitas dúvidas. Uma delas é sobre a formatação das casas decimais em Float. Olhem a linha de comando:

 

printf("Resultado: %.5f",resultado);

 

Onde se lê %.5f

 

Teria como por uma variável para eu controlar essas casas decimais? Por exemplo:

 

%.decimalf

 

Em vez de digitar o numero 5!

 

Agradeço.

Postado

Ok!

Chamaremos de strings de formatação.

Ao invés de declara em um constante faça em um vetor /Array /Strings:

 

char mascara[] = {"%.1f\n"};

// O 1 esta no 3 índice do nosso vetor para esquerda ->

// Em vetores, o primeiro índice  é 0, por tanto o terceiro é 2.

// Para aumentar o numero de casa decimais para 6 faz assim.

 

mascara[2] = mascara[2] +5; // Neste ponto o 1 se torna 6;

programacao_C_Mauro_Britivaldo_Mascaras.

Postado

Não entendi como isso poderia me ajudar... não sei se consegui explicar o que quero. Quero controlar a quantidade das casas decimais. O sistema vai gerar um valor, o qual estarei guardando numa varável e quero usar essa variável para controlar a quantidade das casas decimais. Não quero entrar com o número, pois não sei esse número.

Postado

Obrigado Olliver, pela paciência...

 

O caso é o seguinte, tenho essas linhas de comando:

 

 if(exp < 0) //Calcula expoente negativo.
      {
      resultado = pow(base,(exp +0));
      printf("Resultado: %f",resultado);
 }
 
Calcula a potência com expoente negativo. base e exp são tipo int e resultado deixei como float. Ao mostrar o resultado de 2 elevado a -2, 0,250000. Quero que mostre somente 0,25, sem os zeros no final. Entre o %f, posso por 0.algum decimal. Esse algum decimal, poderia ser automático. Ai pensei no expoente, pois ele controla essas decimais na conta. Poderia ser %.expf... mas dá erro. Como explicar pro compilador que esse exp é um número para controlar as casas decimais? Se você puder mostrar como ficaria no meu programa... agradeço...
Postado

Vendo agora sua explicação

acho que encontrei algo que se enquadra melhor com a sua necessidade, e com simplicidade.

Observe abaixo:

#include <stdio.h>#include <stdlib.h>#define FORMAT_FLOAT(resultado, expf) printf("Resultado: %."#expf"f", resultado);int main(void){   FORMAT_FLOAT(2.2222, 2);   return (0x0);}

ou use também pode %g ao invés de %f.

Postado

Opa... agora sim... esse %g, parece que resolveu!! Kkkk, desculpa mesmo... nube é fogo! Pelo visto você manja muito. você faz projetos avulsos, dá aulas? me add no face: [email protected]


Não qro abusar, mas imagina o trabalho: desenhar uma letra Z com matriz. você entra com o tamanho, 5x5, 6x6 e ele gera na tela uma letra Z grande...

To me matando!

  • 1 ano depois...
Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!