gcvt(),ecvt(),fcvt()的区别

函数名称: gcvt
函数原型: char * gcvt(double value,int ndec,char *buf)
函数功能: 将数值value转换为长度为ndec的字符串,包含小数点。
函数返回: 指向buf的指针
参数说明: value-要转换的浮点数值,ndec-转换后的长度

函数名称: ecvt
函数原型: char *ecvt(double value,int ndigIT,int *dec,int *sign)
函数功能: 将浮点数转换为长度为ndigIT字符串,没有小数点,如果超过value的数字长度不补零。
函数返回: 转换后的字符串指针
参数说明: value-待转换底浮点数,ndigIT-转换后的字符串长度

函数原型: char *fcvt(double value,int ndigIT,int *dec,int *sign)
函数功能: 将浮点数转换为长度为ndigIT字符串,没有小数点,如果超过value的数字长度将补零。
函数返回: 转换后字符串指针
参数说明: value-待转换底浮点数,ndigIT-转换后底字符串长度

#include <iostream>

using namespace std;

int main(int argc, char** argv)
{
    double d = 345.8736;
    int a=0, b=0, c = 5;

    char szBuff[20];

    gcvt(d, 15, szBuff);

    cout<<szBuff<<endl;

    cout<<ecvt(d, c, &a, &b)<<endl;

    cout<<fcvt(d, c, &a, &b)<<endl;

    return 0;
}

这是自己无意中看到上面几个函数,感觉没见过,所以就顺便查了下,写了几句简单的代码测试了下,如果要详细的参数信息请查看msdn的文档,有不当之处还请指教!

原文地址:https://www.cnblogs.com/huiz/p/9610681.html