社区
C语言
帖子详情
怎样把浮点数转换成字符串?
zzol
2004-12-20 04:06:32
怎样把浮点数转换成字符串?
自带的函数itoa,ltoa都是转换整数的,遇到浮点数,双精度的数怎么办?
...全文
14779
7
打赏
收藏
怎样把浮点数转换成字符串?
怎样把浮点数转换成字符串? 自带的函数itoa,ltoa都是转换整数的,遇到浮点数,双精度的数怎么办?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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,单片机/嵌入式STM32-F0/F1/F2
C语言
浮
点数
转
字符串
_C语言
浮
点数
字符串
_
浮
点数
转换
_
C语言
浮
点数
转
字符串
Python 47个
字符串
方法
# Python 47个
字符串
方法## 课程介绍同学们是否总是要搜资料、查官网后,才知道怎么操作
字符串
?如果是,来学学本课程吧,本课程以讲解官网文档的方式,讲解 Python 47个
字符串
方法,涉及替换、删除、连接、查找、...
浮
点数
转换
成
字符串
把
浮
点数
转换
成
字符串
,主要应用串口显示,和数据的存储!
labview IEE754
浮
点数
转换
程序,通过串口采集到的十六进制
字符串
转换
成
单精度的
浮
点数
,
浮
点数
转换
成
十六进制
字符串
labview IEE754
浮
点数
转换
程序,通过串口采集到的十六进制
字符串
转换
成
单精度的
浮
点数
,
浮
点数
转换
成
十六进制
字符串
C语言
69,382
社区成员
243,074
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章