Problema ponto flutuante [RESOLVIDO]

1. Problema ponto flutuante [RESOLVIDO]

Paulo Ricardo Freitas Felix
paulofellix

(usa Ubuntu)

Enviado em 03/10/2010 - 01:57h

O problema é o seguinte...
coloquei so a parte que eu achei importante

main()
{
float raio,alt;
printf("Digite o raio do cilindro:\n\tcm\r");
scanf("%f%*c",&raio); <-- Aqui nesta linha quando coloco o numero com virgula, o programa so lê o que tem antes da virgula o que tem depois ele ignora. Se eu colocar com ponto funciona normal.
printf("%f",raio);
scanf("%*c");
}

alguem pode me ajudar ??


  


2. MELHOR RESPOSTA

Enzo de Brito Ferber
EnzoFerber

(usa FreeBSD)

Enviado em 04/10/2010 - 10:31h

Olá,

Você pode fazer um programa desses, ou pode usar uma função chamada setlocale(). ($ man setlocale)
Ela muda as configurações de regionalidade do programa.

/* setlocale.c */

#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <locale.h>

int main ( void )
{
float f = 1.234;

setlocale ( LC_ALL , "pt_BR" );
printf ( "%f\n", f );

setlocale ( LC_ALL, "en_US" );
printf ( "%f\n", f );

return 0;
}
/* EoF */

Para ver todos os idiomas que você pode usar:
$ locale -a

Agora, se ainda assim quiser um programa que converta a virgula digitada em ponto:

void swap ( char *str )
{
float f;
char *p = str;

while ( *(p++) ) if ( *p == ',' ) *p = '.';

f = atof ( str );
printf ( "Float: %f\n", f );
}

Espero ter ajudado,
Enzo Ferber
[]'s


3. Re: Problema ponto flutuante [RESOLVIDO]

Rafael Umbelino
tlaloc

(usa Gentoo)

Enviado em 03/10/2010 - 02:21h

Mas se tá funcionando normal, qual diabos é o problema? oO
Divisor de ponto flutuante que eu saiba é ponto mesmo, não vírgula.


4. Re: Problema ponto flutuante [RESOLVIDO]

Paulo Ricardo Freitas Felix
paulofellix

(usa Ubuntu)

Enviado em 03/10/2010 - 10:36h

vlew cara
é porque comecei a estudar C agora e não sabia que pontos flutuantes só aceitavam ponto, pensei que estivesse fazendo alguma coisa errada
^^


5. Re: Problema ponto flutuante [RESOLVIDO]

Rafael Umbelino
tlaloc

(usa Gentoo)

Enviado em 03/10/2010 - 10:50h

De boa, rapaz.


6. Re: Problema ponto flutuante [RESOLVIDO]

Paulo Ricardo Freitas Felix
paulofellix

(usa Ubuntu)

Enviado em 03/10/2010 - 10:52h

mas...
e se o usuário digitar um numero com virgula
como eu faria para conseguir ler esse numero ??


7. Re: Problema ponto flutuante [RESOLVIDO]

Rafael Umbelino
tlaloc

(usa Gentoo)

Enviado em 03/10/2010 - 11:50h

Aí tu me pegou no pulo.

Não sei se teria uma maneira, mas a priori, eu faria o seguinte:

Digita número;
Armazena em uma string;
Converte, da string, as vírgulas em pontos;
Escreve a string num ponto flutuante;


8. Re: Problema ponto flutuante [RESOLVIDO]

Roger
rootgerr

(usa Slackware)

Enviado em 03/10/2010 - 12:06h

lembro das minhas épocas de cobol existia uma variavel que voce definia se fosse necessária essa instrução "decimal point is comma" talvez exista algo similar para sua linguagem

aff nem eu acredito que postei isso


9. Re: Problema ponto flutuante [RESOLVIDO]

Paulo Ricardo Freitas Felix
paulofellix

(usa Ubuntu)

Enviado em 03/10/2010 - 12:52h

ta dando problema na hora de colocar a string no float point
ele troca tudo certinho, mostra a string atualizada
mas não ta dando certo, aparece outro valor

#include<stdio.h>
troca(char c[])
{
float f;
int i;
for (i=0;i<=5;i++)
{
if (c[i]==',') c[i]='.';
}
f=atof(c); /*Função para converter string em float point */
printf("Valor String Com Ponto: %s \n",c);
printf("Valor Float: %f \n",f);
scanf("%*c");
}

main()
{
char teste_c[5];
printf("Valor p/ String: ");
scanf("%[^\n]",teste_c);
troca(teste_c);
scanf("%*c");
}


10. Re: Problema ponto flutuante [RESOLVIDO]

Enzo de Brito Ferber
EnzoFerber

(usa FreeBSD)

Enviado em 04/10/2010 - 10:34h

P.S.:

Se você quiser saber quais as configurações de regionalidade nas quais o programa está sendo executado, o programa a seguir mostra:

/* showlocale.c */

#include <stdio.h>
#include <unistd.h>
#include <locale.h>

int main ( void )
{
printf ( setlocale ( LC_ALL, "" ));
return 0;
}
/* EoF */

Lembre-se que estou postando códigos testados em linux, não sei se vão funcionar em Windows.
[]'s


11. Re: Problema ponto flutuante [RESOLVIDO]

Paulo Ricardo Freitas Felix
paulofellix

(usa Ubuntu)

Enviado em 04/10/2010 - 11:42h

valew cara...
funcionou \ô/






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts