c语言里 怎样将单精度浮点型数转换成字符型

快哦!!!

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

int main() {
float fa = 3.68f;
char fstr[20];
// 最简易的方法
sprintf(fstr,"%f",fa);
printf("%s\n",fstr);
// 用专用函数转换
gcvt(fa,8,fstr);
printf("%s\n",fstr);
return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-07-20
这个是br前辈的回答
链接在这里:http://zhidao.baidu.com/question/161721125.html

用gcvt函数!
函数名: gcvt
功 能: 把浮点数转换成字符串
用 法: char *gcvt(double value, int ndigit, char *buf);

例子:

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

int main(void)
{
char str[25];
double dNum;
int n = 5;//需要转化的位数

//一般浮点数
dNum = 9.876;
gcvt(dNum, n, str);
printf( "string = %s\n", str);

//负数
dNum = -123.4567;
gcvt(dNum, n, str);
printf("string = %s\n", str);

//指数
dNum = 0.678e5;
gcvt(dNum, n, str);
printf("string = %s\n", str);

return 0;
}

满意请采纳,不满意请追问追问

不是转换成字符串 而是char

追答

你可以用一个字符变量去提取啊
想要那个字符就去遍历字符串得到那个字符就可以了

不过你想把整个浮点数转换成一个字符是不可能的
一个32位机的浮点数用4字节表示浮点数,
但只用1字节表示字符,所以不可以

追问

怎么去提取呢?不懂啊 具体点儿吧

追答

比如,你输入的数是123.123
那么你得到的字符串是有‘1’,‘2’,‘3’,‘.’,‘1’,‘2’,‘3’,‘\n’构成的
那么你就可以根据偏移来提取字符
比如你想提取小数点
假设你的字符串为test,字符变量是c,
那么你就可以用下面的语句来进行提取
c=test[3];

本回答被提问者采纳
第2个回答  2013-07-20
#include<stdio.h>
int main()
{
float x=1.333333;
int y=x;
printf("%d\n",y);
system("pause");
return 0;
}追问

x为scanf任意输入的值也可以吗?

追答

#include
int main()
{
float x;
scanf("%f",&x);
char y=x;
printf("%c\n",y);
system("pause");
return 0;
}
//自动取整了

相似回答