Ir para conteúdo
Fórum Script Brasil
  • 0

Variavel Float Duvida


Caiolug

Pergunta

char valor;

valor == 2.59;

printf("O valor do Combustivel por litros equivale a %f por litro.", valor);

A minha duvida é simples : Porque que quando eu compilo e executo o programa, o valor em vez de ser 2,59 é +/- assim : 0,000000000

O que pode estar errado? era pra ser 2,59 na frase.

muito obrigado =D

Editado por Durub
Adicionar tags code [Durub]
Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

Opa, ai tem um erro: Você declarou a variavel "valor" sendo como char(apenas de 1 caracter).E está lendo no printf como float(%f).

São coisas diferentes. Você precisa definir a variavel valor como float.

Faça assim:

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

int main(){
    
  float valor;
    
  valor = 2.59;
    
  printf("O valor do Combustivel por litros equivale a %f por litro.\n\n", valor);
  system("pause");
    
}//main
O Resultador seria : 2.590000 Agora se quiser,mostrar apenas duas casas depois da vírgula, faça assim:
printf("O valor do Combustivel por litros equivale a %.2f por litro.\n\n", valor);

Editado por Binder
Link para o comentário
Compartilhar em outros sites

  • 0

Oxi, não sei o que eu fiz, mas o valor esta dando 3 quando eu compilo O.O olha só:


#include<iostream>
#include<cstdlib>

using namespace std;

int codigo,numero,pagamento;
float resultado;
char combustivel[5];

int main(){
    float valor;
    
    printf("Por favor, insira o codigo do combustivel desejado:\n\n");
    scanf("%d", &codigo);
    
    if(codigo == 1){
              valor = 2.95;
              strcpy(combustivel,"Etanol");
              printf("O combustivel escolhido foi o %s \n", combustivel);
              printf("\nO Valor do %s por litro equivale a %f reais.\n\n",combustivel,valor);
              system("PAUSE");}
              
    else{
        printf("\nCodigo Invalido\n\n");
        system("PAUSE");}
    
}

Link para o comentário
Compartilhar em outros sites

  • 0

Opa, a princípio testei aqui e está funcionando normal.

Apenas percebi algumas coisas:

1) Você declarou as váriaveis fora do main, porque?

#include<iostream>
#include<cstdlib>

using namespace std;

int codigo,numero,pagamento;
float resultado;
char combustivel[5];

int main(){
    float valor;
          .....
2) Não está utilizando as variaveis "numero", "pagamento", "resultado", a não ser que vai continuar o programa...Caso contrário não tem necessidade de declarar. 3) Agora na impressão do resultado, perceba os seguintes códigos: Caso queira mostrar 2.950000, Faça Assim:
printf("\nO Valor do %s por litro equivale a %f reais.\n\n",combustivel,valor);
Caso queira mostrar 2.95, Faça Assim:
printf("\nO Valor do %s por litro equivale a %.2f reais.\n\n",combustivel,valor);

Agora, se colocar %.1f, irá mostrar 3.0 o "valor".Após o .(ponto) você sempre irá definir quantas casas decimais quer mostrar depois da vírgula.

Editado por Binder
Link para o comentário
Compartilhar em outros sites

  • 0

Opaaaa, muito obrigadoooo deu certo, aa, e respondendo sua pergunta, vai continuar sim, isso é um programinha valendo 1 ponto pra faculdade de Ciencias da Computação, to na primeira semana de aula hehehehe... Muito obrigado mesmo. Qualquer coisa eu te encho o saco denovo , hehehehehee *-*

Link para o comentário
Compartilhar em outros sites

  • 0

Olha, para finalizar meu programa, só esta acontecendo mais um problema, o resultado da divisão sempre da 0, já tentei de tudo, esses %d %f nada deu certo, já mudei a variavel resultado pra int, pra float, e nada deu certo se puder me ajudar nessa também eu agradeço muito .


#include<iostream>
#include<cstdlib>

using namespace std;

int main(){
    
    
int codigo,numero,pagamento;
float valor;
char combustivel[15];
int resultado = pagamento/valor;

    
    printf("Por favor, insira o codigo do combustivel desejado:\n\n");
    scanf(" %d", &codigo);
    
    if(codigo == 1){
              valor = 2.95;
              strcpy(combustivel,"Etanol");
              printf("\nO combustivel escolhido foi o %s \n", combustivel);
              printf("\nO Valor do %s por litro equivale a %.2f reais.\n\n",combustivel,valor);
              printf("\n Por favor, digite o valor que o cliente deseja abastecer para converter o valor em litros: ");
              scanf("\n %d", &pagamento);
              printf("\n O pagamento do cliente equivale a %d litros de %s ",resultado,combustivel);
              system("PAUSE");}
              
    else{
        printf("\nCodigo Invalido\n\n");
        system("PAUSE");}
    
}

Link para o comentário
Compartilhar em outros sites

  • 0

Opa, você cometeu um erro grave:

int main(){
    
int codigo,numero,pagamento;
float valor;
char combustivel[15];
int resultado = pagamento/valor;            // aqui está o erro
Após o "main", você está declarando as suas váriaveis , para poder utilizar durante o programa, sendo assim você não tem valores ainda, dentro delas. O cálculo deve ser após as variáveis conter "valores". Na minha opinião, acho que você deve declarar as variaveis "resultado" ,"pagamento", "valor" como float. Pois podem dar resultados "quebrados"(2.40,2.59...) Eu faria assim:
#include<iostream>
#include<cstdlib>

using namespace std;

int main(){
    
    
int codigo,numero;
float valor,pagamento,resultado;
char combustivel[15];


    
    printf("Por favor, insira o codigo do combustivel desejado:\n\n");
    scanf(" %d", &codigo);
    
    if(codigo == 1){
              valor = 2.95;
              strcpy(combustivel,"Etanol");
              printf("\nO combustivel escolhido foi o %s \n", combustivel);
              printf("\nO Valor do %s por litro equivale a %.2f reais.\n\n",combustivel,valor);
              
              printf("\n Por favor, digite o valor que o cliente deseja abastecer para converter o valor em litros: ");
              scanf("\n %f", &pagamento);
              
              resultado = pagamento/valor;
              
              printf("\n O pagamento do cliente equivale a %.2f litros de %s\n\n",resultado,combustivel);
              system("PAUSE");}
              
    else{
        printf("\nCodigo Invalido\n\n");
        system("PAUSE");}
}

Editado por Binder
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...