c语言gcvt()函数 %g c语言

C 语言 哪个函数可以把 浮点数转换成字符串 带小数点 怎么做

用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;

}

C语言库函数有将数字转字符串的函数吗

1、itoa

功 能:把一整数转换为字符串

用 法:char *itoa(int value, char *string, int radix);

详细解释:itoa是英文integer to array(将int整型数转化为一个字符串,并将值保存在数组string中)的缩写.

参数:

value: 待转化的整数。

radix: 是基数的意思,即先将value转化为radix进制的数,范围介于2-36,比如10表示10进制,16表示16进制。

* string: 保存转换后得到的字符串。

返回值:

char * : 指向生成的字符串, 同*string。

备注:该函数的头文件是"stdlib.h"

2、ltoa

功 能:把一长整形转换为字符串

用 法:char *ltoa(long value, char *string, int radix);

详细解释:itoa是英文long integer to array(将long int长整型数转化为一个字符串,并将值保存在数组string中)的缩写.

参数:

value: 待转化的长整型数。

radix: 是基数的意思,即先将value转化为radix进制的数,范围介于2-36,比如10表示10进制,16表示16进制。

* string: 保存转换后得到的字符串。

返回值:

char * : 指向生成的字符串, 同*string。

备注:该函数的头文件是"stdlib.h"

3、ultoa

功 能:把一无符号长整形转换为字符串

用 法:char *ultoa(unsigned long value, char *string, int radix);

详细解释:itoa是英文unsigned long integer to array(将unsigned long int无符号长整型数转化为一个字符串,并将值保存在数组string中)的缩写.

参数:

value: 待转化的无符号长整型数。

radix: 是基数的意思,即先将value转化为radix进制的数,范围介于2-36,比如10表示10进制,16表示16进制。

* string: 保存转换后得到的字符串。

返回值:

char * : 指向生成的字符串, 同*string。

备注:该函数的头文件是"stdlib.h"

4、gcvt

功 能:把浮点型数转换为字符串,取四舍五入

用 法:char *gcvt(double value, int ndigit, char *buf);

详细解释:gcvt()用来将参数number转换成ASCII码字符串,参数ndigits表示显示的位数。gcvt()与ecvt()和fcvt()不同的地方在于,gcvt()所转换后的字符串包含小数点或正负符号。若转换成功,转换后的字符串会放在参数buf指针所指的空间。

参 数:

value:待转化的浮点数。

ndigit:存储的有效数字位数。

*buf:结果的存储位置。

返回值:

char * :指向生成的字符串, 同*buf。

备注:该函数的头文件是"stdlib.h"

5、ecvt

功 能:将双精度浮点型数转换为字符串,转换结果中不包括十进制小数点

用 法:char *ecvt(double value, int ndigit, int *decpt, int *sign);

详细解释:ecvt函数把一个双精度浮点数转换成一个字符串。value参数是要转换的浮点数。这个函数存储最多ndigit个数字值作为一个字符串,并添加一个空数字符('\0'),如果value中的数字个数超过ndigit,低位数字被舍入。如果少于ndigit个数字,该字符串用0填充。

只有数字才存储在该字符串中,小数点位置和value符号在调用之后从decpt和sign获取。decpt参数指出给出小数点位置的整数值,它是从该字符串的开头位置计算的。0或负数指出小数点在第一个数字的左边。sign参数指出一个指出转换的数的符号的整数。如果该整数为0,这个数为正数,否则为负数。

参 数:

value:待转换的双精度浮点数。

ndigit:存储的有效数字位数。

*decpt:存储的小数点位置。

*sign:转换的数的符号。

返回值:

char*:指向生成的字符串。

备注:该函数的头文件是"stdlib.h"

6、fcvt

功 能:指定位数为转换精度,其余同ecvt

用 法:char *fcvt(double value, int ndigit, int *decpt, int *sign);

详细解释:fcvt函数把一个双精度浮点数转换成一个字符串。value参数是要转换的浮点数。参与转换的实际值保留的小数位数由ndigit决定。

只有数字才存储在该字符串中,小数点位置和value符号在调用之后从decpt和sign获取。decpt参数指出给出小数点位置的整数值,它是从该字符串的开头位置计算的。0或负数指出小数点在第一个数字的左边。sign参数指出一个指出转换的数的符号的整数。如果该整数为0,这个数为正数,否则为负数。

参 数:

value:待转换的双精度浮点数

ndigit:转换的字符串中包含小数点后几位

*decpt:返回小数点在串中的位置

*sign:符号标志。

返回值:

char*:指向生成的字符串。

备注:该函数的头文件是"stdlib.h"

C语言float转换二进制 gcvt(double,2,char*)为什么不可以?

gcvt(double,2,char*)

函数实际上是 用 sprintf() 用 %g 格式 把 float转换成 字符串,不是 转换二进制。

第2 个参数 用于 %g 格式 处理成 %f 时 作 有效数字位数 要求。

除非是自己编写的 gcvt(double,2,char*)

float 的 二进制 内存 状态,可以 用 联合体:

union u {

float x;

char s[4];

} U;

float x=123.4567;

U.x = x;

printf("%02x %02x %02x %02x\n", U.s[3], U.s[2], U.s[1],U.s[0]); 打印出来看。

--------

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;

}


分享标题:c语言gcvt()函数 %g c语言
网页地址:http://ybzwz.com/article/doigipo.html