原型:char *gcvt(double value, int ndigit, char *buf);
相关函数 ecvt,fcvt,sprintf
头文件:stdlib.h
功能:将浮点型数转换为字符串,取四舍五入,同时返回一个指向字符串的存储位置的指针的函数
说明:gcvt函数把一个浮点值转换成一个字符串(包括一个小数点和可能的符号字节)并存储该字符串在buffer中。该buffer应足够大以便容纳转换的值加上结尾的空字符('\0'),它是自动添加的。如果一个缓冲区的尺寸为digits的尺寸+1,该函数覆盖该缓冲区的末尾。这是因为转换的字符串包括一个小数点以及可能包含符号和指数信息。不提供上溢出。gcvt试图以十进制格式产生digits数字,如果不可能,它以指数格式产生digits数字,在转换时可能截除尾部的0。
返回值:返回一个指向结果的存储位置的指针。
参数:
value:被转换的值
ndigit:存储的有效数字位数
buf:结果的存储位置
应用实例:
#include <stdlib.h>
#include <stdio.h>
int main()
{
double a = 12345678.12549;//一供14位数字
char ptr[128] = {0};
int i = 0;
for(i = 1;i < 15;i++)
{
gcvt(a,i,ptr);
printf("a:%f 取%d位转换后:%s\n",a,i,ptr);
}
double b = 0.1234567;//一供8位数字
for(i = 1;i < 9;i++)
{
gcvt(b,i,ptr);
printf("b:%f 取%d位转换后:%s\n",b,i,ptr);
}
return 0;
}
运行结果: