Ir ao conteúdo
  • Cadastre-se
attilla

C Qualquer valor do tipo float ou double retorna errada

Recommended Posts

Por exemplo, eu rodei o código seguinte em C:

 

#include <stdio.h>
#include <stdlib.h>
 

void main(){
double z=165113.023;
float x=133;
printf("%5.0d  \n  %f",z,x);
}

E o sistema retornou:

 

790273982

0.000000

 

Todas as variáveis float e double estão voltando como 0 quando eu não formato e as formatadas estão retornando valores loucos, o que pode estar causando isso?
Eu estou usando o CodeBlocks16.01

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia @attilla

 

Você ta usando o formato errado para "printar" os números, segue abaixo os formatos correspondentes.

printf("Float - %f\n",fNum);

printf("Double - %lf\n",dNum);

Alias esse código abaixo no DevC++ funciona.

printf("%5.0lf  \n  %f",z,x);

Espero ter ajudado:D

Compartilhar este post


Link para o post
Compartilhar em outros sites

O Codeblocks e o Dev C++ são apenas IDEs (Ambientes de Desenvolvimento Integrado), ou seja um grupo de ferramentas para facilitar a programação (incluindo o editor de texto).

 

IDEs podem ou não incluir um compilador, de fato ambos o Codeblocks e o Dev C++, tem versões para download sem o compilador incluso. E nesse caso você pode obter um compilador separadamente.

 

Em ambos os casos o compilador (da IDE com compilador incluso) é o MinGW (com versões diferentes), o que significa que não faz diferença compilar em um ou no outro, pois vai funcionar da mesma maneira.

 

Logo, falar que o programa foi compilado no Codeblocks ou no Dev C++ não significa nada, pois o que importa é o compilador usado. (E mesmo com compiladores diferentes o resultado deve ser o mesmo, pois a linguagem é de programação é padronizada.)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola @isrnick

 

Eu só falei que eu havia compilado com o DevC++ pois o segundo resultado (da variavel float x) usando o código original do @attilla deu um resultado diferente, de vez aparecer 0.000000 apareceu 133.000000 que era o numero esperado, mesmo sabendo que o resultado deveria ser o mesmo independente de IDE ou compilador, achei interessante comentar qual IDE eu usava para compilar e executar os códigos em C.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×