Ir ao conteúdo
  • Cadastre-se

Float para String...


Brook

Posts recomendados

Pessoal, eu tava usando o static_cast para fazer uma conversão de float para string. O problema é que a precisão tá horrível...

vocês sabem algum modo em que se aumente a precisão ou outro método para se converter de float para string?

Para constar, usando um arquivo ostringstream tb não funcionou. A precisão com números, como: 1000,01/1,01/ ou seja, com a parte fracionária baixa ele arredonda para 1.

Me ajudem por favor...

Link para o comentário
Compartilhar em outros sites

ScreenBlack, pelo que vi, esse comando não transforma de string para float e nem ao contrário. Ele faz isso só que para que se possa imprimir na tela...

você tem mais alguma opção? Como aumentar a precisão, por exemplo?

Por favor me corrija se estiver errado.

Link para o comentário
Compartilhar em outros sites

Exemplo de conversão float para string:


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

int main()
{
float fpi = 3.1416;
char spi[30];

snprintf(spi, 7, "%f", fpi); // converte o valor de float na variavel do tipo string
fprintf(stdout, "float: %.4f\n", fpi); // imprime string
fprintf(stdout, "string: %s\n", spi); // imprime string

return 0;

}

Já para a parte de precisão, não consegui achar algo mais consistente do que valores que possuam no máximo 6 casas decimais usando float simples, mas, existem comentários dizendo que usando "double float" consegue precisão de até 15 casas decimais, só que não funcionou aqui no meu compilador, pois ele não reconhece esse tipo.

Link para o comentário
Compartilhar em outros sites

  • 10 anos depois...

Bem, eu já passei por este problema. Tente essa solução :

 

/*     Nome do Programa :  padrão de entrada         */
#include <iostream>
#include<windows.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
#include <stdio.h>
/* biblioteca padrão para comandos i/o  */
#include <stdlib.h>
/* biblioteca padrão para telas  */
#include <locale.h> //necessário para usar setlocale
#include <string.h>//necessário para strncat

void gotoxy(int x, int y){
     SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),(COORD){x-1,y-1});
}

int main (void)

{
    double numero;
    int j;
    char str_num[20]; 
    
    gotoxy(30,1);
    printf("A localidade corrente agora é %s \n",setlocale(LC_ALL,"")); 
       gotoxy(30,2);
    printf("====================================================\n"); 
    printf("\n\n\nEntre com um valor decimal :   ");
    scanf("%lf", &numero);
    
    sprintf(str_num, "%.2f", numero);

    printf("\nValor float na entrada   :    %.2f     -  string resultante : {    %s    }  \n\n", numero, str_num);
    printf("\n\Eis a string com seus caracteres separados e formatada para duas casas decimais :   {  ");
    for(j = 0;
        str_num[j];
        j++       ) printf("%c,", str_num[j] );
                  
    printf("   }  ");    
    
    gotoxy(4, 20);
    
return 0;
    
}

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário 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 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!