社区
C语言
帖子详情
怎样把浮点数转换成字符串?
zzol
2004-12-20 04:06:32
怎样把浮点数转换成字符串?
自带的函数itoa,ltoa都是转换整数的,遇到浮点数,双精度的数怎么办?
...全文
15092
7
打赏
收藏
怎样把浮点数转换成字符串?
怎样把浮点数转换成字符串? 自带的函数itoa,ltoa都是转换整数的,遇到浮点数,双精度的数怎么办?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
janeSatan
2004-12-20
打赏
举报
回复
在将浮点型数字转换为字符串时,需要使用另外一组函数。
以下是用fcvt()函数将浮点型值转换为字符串的一个例子:
# include <stdio. h>
# include <stdlib. h>
void main (void);
void main (void)
{
double num = 12345.678;
char * sir;
int dec_pl, sign, ndigits = 3; /* Keep 3 digits of precision. * /
str = fcvt(num, ndigits, &dec-pl, &sign); /* Convertthe float to a string. * /
printf("Original number; %f\n" , num) ; /* Print the original floating-point value. * /
printf ("Converted string; %s\n",str); /* Print the converted string'svalue. * /
printf ("Decimal place: %d\n" , dec-pi) ; /* Printthe location of the decimal point. * /
printf ("Sign: %d\n" , sign) ; /* Printthe sign.0 =positive,1 =negative. * /
}
fcvt()函数和itoa()函数有数大的差别。fcvt()函数有4个参数:第一个参数是要转换的浮点型值;第二个参数是转换结果中十进制小数点右侧的位数;第三个参数是指向一个整数的指针,该整数用来返回转换结果中十进制小数点的位置;第四个参数也是指向一个整数的指针,该整数用来返回转换结果的符号(0对应于正值,1对应于负值)。需要注意的是,fcvt()函数的转换结果中并不真正包含十进制小数点,为此,fcvt()函数返回在转换结果中十进制小数点应该占据的位置。在上例中,整型变量dec_pl的结果值为5,因为在转换结果中十进制小数点应该位于第5位后面。如果你要求转换结果中包含十进制小数点,你可以使用gcvt()函数(见下表)。下列函数可以将浮点型值转换为字符串:
---------------------------------------------------------
----------------
函数名作用
---------------------------------------------------------
----------------
ecvt() 将双精度浮点型值转换为字符串,转换结果中不
包含十进制小数点
fcvt() 以指定位数为转换精度,余同ecvt()
gcvt() 将双精度浮点型值转换为字符串,转换结果中包
含十进制小数点
---------------------------------------------------------
}
snow810211
2004-12-20
打赏
举报
回复
#include <stdlib.h>
#include <stdio.h>
void main( void )
{
char buffer[50];
double source = -0.14150;
_gcvt( source, 4, buffer );
printf( "source: %f buffer: '%s'\n", source, buffer );
system("pause");
}
snow810211
2004-12-20
打赏
举报
回复
char * _fcvt(double value,int dount,int *dec,int *sign);
说明:
value 为要被转换的数值
count 为小数点后的位数
dec 为小数点所在位置
sign 为正负号,0代表正,非0整数代表负
#include <stdio.h>
#include <stdlib.h>
void main()
{
int dec,sign;
char *temp;
//double value=0.1256;
double value=-0.01256;
temp=_fcvt(value,3,&dec,&sign);
printf("String after convert :%s\n",temp);
printf("Decimal :%d\n",dec);
printf("sign :%d\n",sign);
}
winstonch
2004-12-20
打赏
举报
回复
skfox(sky)的方法不错,但是不能完全复原,不知道楼主是否有这样的要求,要是那样的话可就没这么简单了
master5470
2004-12-20
打赏
举报
回复
关注中,好问题!
skfox
2004-12-20
打赏
举报
回复
char chFloat[20];
memset(chFloat,'\0',sizeof(chFloat));
float iF =9.89;
sprintf(chFloat,"%f",iF);
printf("%s\n",chFloat);
absolutelyzero_p
2004-12-20
打赏
举报
回复
关注
C语言
浮点数
转
字符串
_C语言
浮点数
字符串
_
浮点数
转换_
C语言
浮点数
转
字符串
电子-
浮点数
转换成
字符串
.c
电子-
浮点数
转换成
字符串
.c,单片机/嵌入式STM32-F0/F1/F2
浮点数
转换成
字符串
把
浮点数
转换成
字符串
,主要应用串口显示,和数据的存储!
labview IEE754
浮点数
转换程序,通过串口采集到的十六进制
字符串
转换成
单精度的
浮点数
,
浮点数
转换成
十六进制
字符串
labview IEE754
浮点数
转换程序,通过串口采集到的十六进制
字符串
转换成
单精度的
浮点数
,
浮点数
转换成
十六进制
字符串
浮点数
转换为汉文
字符串
实现把不超过12位整数的
浮点数
转换为中文读法的
字符串
并保留两位小数
C语言
70,023
社区成员
243,263
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章