皮皮网

【用户画像系统源码】【php源码修改’】【闲聊源码开发】gcvt函数源码_gcvt函数的用法

时间:2024-12-22 21:30:41 分类:焦点 来源:android系统源码地址

1.C 语言 哪个函数可以把 浮点数转换成字符串 带小数点 怎么做
2.怎么把字符转换成数字?
3.C++ gcvt 双精小数转换到字符串如何实现 (具体实现方法 不是函数函数问库函数怎么用)

gcvt函数源码_gcvt函数的用法

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

       用gcvt函数!

       函数名:

       gcvt

       功

       能:

       把浮点数转换成字符串

       用

       法:

       char

       *gcvt(double

       value,源码

       int

       ndigit,

       char

       *buf);

       例子:

       #include

       <stdlib.h>

       #include

       <stdio.h>

       int

       main(void)

       {

       char

       str[];

       double

       dNum;

       int

       n

       =

       5;//需要转化的位数

       //一般浮点数

       dNum

       =

       9.;

       gcvt(dNum,

       n,

       str);

       printf(

       "string

       =

       %s\n",

       str);

       //负数

       dNum

       =

       -.;

       gcvt(dNum,

       n,

       str);

       printf("string

       =

       %s\n",

       str);

       //指数

       dNum

       =

       0.e5;

       gcvt(dNum,

       n,

       str);

       printf("string

       =

       %s\n",

       str);

       return

       0;

       }

怎么把字符转换成数字?

       atof(将字符串转换成浮点型数)

       相关函数 atoi,atol,函数函数strtod,源码strtol,函数函数strtoul

       表头文件 #include

       定义函数 double atof(const char *nptr);

       函数说明 atof()会扫描参数nptr字符串,源码用户画像系统源码跳过前面的函数函数空格字符,直到遇上数字或正负符号才开始做转换,源码而再遇到非数字或字符串结束时('\0')才结束转换,函数函数并将结果返回。源码参数nptr字符串可包含正负号、函数函数小数点或E(e)来表示指数部分,源码如.或e-2。函数函数

       返回值 返回转换后的源码浮点型数。

       附加说明 atof()与使用strtod(nptr,函数函数php源码修改’(char**)NULL)结果相同。

       范例 /* 将字符串a 与字符串b转换成数字后相加*/

       #include

       main()

       {

       char *a=”-.”;

       char *b=”e-2”;

       float c;

       c=atof(a)+atof(b);

       printf(“c=%.2f\n”,c);

       }

       执行 c=-.

       atoi(将字符串转换成整型数)

       相关函数 atof,atol,atrtod,strtol,strtoul

       表头文件 #include

       定义函数 int atoi(const char *nptr);

       函数说明 atoi()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('\0')才结束转换,并将结果返回。

       返回值 返回转换后的整型数。

       附加说明 atoi()与使用strtol(nptr,(char**)NULL,);结果相同。

       范例 /* 将字符串a 与字符串b转换成数字后相加*/

       #include

       mian()

       {

       char a[]=”-”;

       char b[]=””;

       int c;

       c=atoi(a)+atoi(b);

       printf(c=%d\n”,闲聊源码开发c);

       }

       执行 c=

       atol(将字符串转换成长整型数)

       相关函数 atof,atoi,strtod,strtol,strtoul

       表头文件 #include

       定义函数 long atol(const char *nptr);

       函数说明 atol()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('\0')才结束转换,并将结果返回。

       返回值 返回转换后的长整型数。

       附加说明 atol()与使用strtol(nptr,(char**)NULL,);结果相同。

       范例 /*将字符串a与字符串b转换成数字后相加*/

       #include

       main()

       {

       char a[]=””;

       char b[]=” ”;

       long c;

       c=atol(a)+atol(b);

       printf(“c=%d\n”,c);

       }

       执行 c=

       gcvt(将浮点型数转换为字符串,取四舍五入)

       相关函数 ecvt,fcvt,sprintf

       表头文件 #include

       定义函数 char *gcvt(double number,捕鱼全套源码size_t ndigits,char *buf);

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

       返回值 返回一字符串指针,此地址即为buf指针。

       附加说明

       范例 #include

       main()

       {

       double a=.;

       double b=-.;

       char *ptr;

       int decpt,sign;

       gcvt(a,5,ptr);

       printf(“a value=%s\n”,ptr);

       ptr=gcvt(b,6,ptr);

       printf(“b value=%s\n”,ptr);

       }

       执行 a value=.

       b value=-.

       strtod(将字符串转换成浮点数)

       相关函数 atoi,atol,strtod,strtol,strtoul

       表头文件 #include

       定义函数 double strtod(const char *nptr,贝塔系数源码char **endptr);

       函数说明 strtod()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,到出现非数字或字符串结束时('\0')才结束转换,并将结果返回。若endptr不为NULL,则会将遇到不合条件而终止的nptr中的字符指针由endptr传回。参数nptr字符串可包含正负号、小数点或E(e)来表示指数部分。如.或e-2。

       返回值 返回转换后的浮点型数。

       附加说明 参考atof()。

       范例 /*将字符串a,b,c 分别采用,2, 进制转换成数字*/

       #include

       mian()

       {

       char a[]=””;

       char b[]=””;

       char c[]=”ffff”;

       printf(“a=%d\n”,strtod(a,NULL,));

       printf(“b=%d\n”,strtod(b,NULL,2));

       printf(“c=%d\n”,strtod(c,NULL,));

       }

       执行 a=

       b=

       c=

       strtol(将字符串转换成长整型数)

       相关函数 atof,atoi,atol,strtod,strtoul

       表头文件 #include

       定义函数 long int strtol(const char *nptr,char **endptr,int base);

       函数说明 strtol()会将参数nptr字符串根据参数base来转换成长整型数。参数base范围从2至,或0。参数base代表采用的进制方式,如base值为则采用进制,若base值为则采用进制等。当base值为0时则是采用进制做转换,但遇到如'0x'前置字符则会使用进制做转换。一开始strtol()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,再遇到非数字或字符串结束时('\0')结束转换,并将结果返回。若参数endptr不为NULL,则会将遇到不合条件而终止的nptr中的字符指针由endptr返回。

       返回值 返回转换后的长整型数,否则返回ERANGE并将错误代码存入errno中。

       附加说明 ERANGE指定的转换字符串超出合法范围。

       范例 /* 将字符串a,b,c 分别采用,2,进制转换成数字*/

       #include

       main()

       {

       char a[]=””;

       char b[]=””;

       char c[]=”ffff”;

       printf(“a=%d\n”,strtol(a,NULL,));

       printf(“b=%d\n”,strtol(b,NULL,2));

       printf(“c=%d\n”,strtol(c,NULL,));

       }

       执行 a=

       b=

       c=

       strtoul(将字符串转换成无符号长整型数)

       相关函数 atof,atoi,atol,strtod,strtol

       表头文件 #include

       定义函数 unsigned long int strtoul(const char *nptr,char **endptr,int base);

       函数说明 strtoul()会将参数nptr字符串根据参数base来转换成无符号的长整型数。参数base范围从2至,或0。参数base代表采用的进制方式,如base值为则采用进制,若base值为则采用进制数等。当base值为0时则是采用进制做转换,但遇到如'0x'前置字符则会使用进制做转换。一开始strtoul()会扫描参数nptr字符串,跳过前面的空格字符串,直到遇上数字或正负符号才开始做转换,再遇到非数字或字符串结束时('\0')结束转换,并将结果返回。若参数endptr不为NULL,则会将遇到不合条件而终止的nptr中的字符指针由endptr返回。

       返回值 返回转换后的长整型数,否则返回ERANGE并将错误代码存入errno中。

       附加说明 ERANGE指定的转换字符串超出合法范围。

       范例 参考strtol()

       toascii(将整型数转换成合法的ASCII 码字符)

       相关函数 isascii,toupper,tolower

       表头文件 #include

       定义函数 int toascii(int c)

       函数说明 toascii()会将参数c转换成7位的unsigned char值,第八位则会被清除,此字符即会被转成ASCII码字符。

       返回值 将转换成功的ASCII码字符值返回。

       范例 #include

       main()

       {

       int a=;

       char b;

       printf(“before toascii () : a value =%d(%c)\n”,a,a);

       b=toascii(a);

       printf(“after toascii() : a value =%d(%c)\n”,b,b);

       }

       执行 before toascii() : a value =()

       after toascii() : a value =(Y)

       tolower(将大写字母转换成小写字母)

       相关函数 isalpha,toupper

       表头文件 #include

       定义函数 int tolower(int c);

       函数说明 若参数c为大写字母则将该对应的小写字母返回。

       返回值 返回转换后的小写字母,若不须转换则将参数c值返回。

       附加说明

       范例 /* 将s字符串内的大写字母转换成小写字母*/

       #include

       main()

       {

       char s[]=”aBcDeFgH;!#$”;

       int i;

       printf(“before tolower() : %s\n”,s);

       for(i=0;I<sizeof(s);i++)

       s[i]=tolower(s[i]);

       printf(“after tolower() : %s\n”,s);

       }

       执行 before tolower() : aBcDeFgH;!#$

       after tolower() : abcdefgh;!#$

       toupper(将小写字母转换成大写字母)

       相关函数 isalpha,tolower

       表头文件 #include

       定义函数 int toupper(int c);

       函数说明 若参数c为小写字母则将该对映的大写字母返回。

       返回值 返回转换后的大写字母,若不须转换则将参数c值返回。

       附加说明

       范例 /* 将s字符串内的小写字母转换成大写字母*/

       #include

       main()

       {

       char s[]=”aBcDeFgH;!#$”;

       int i;

       printf(“before toupper() : %s\n”,s);

       for(i=0;I<sizeof(s);i++)

       s[i]=toupper(s[i]);

       printf(“after toupper() : %s\n”,s);

       }

       执行 before toupper() : aBcDeFgH;!#$

       after toupper() : ABCDEFGH;!#$

C++ gcvt 双精小数转换到字符串如何实现 (具体实现方法 不是问库函数怎么用)

       // double 到字符串

       bool sg_gcvt(double val, int digits, char *dst, int radix) {

        const char *const NUM = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";

        double dig, dou, digs[], *pdig;

        double *const pend = digs + sizeof(digs) / sizeof(digs[0]) - 1;

        int n;

        if (!dst || (radix < 2) || (radix > ) ||

        (val + 1.0 == val) || (val - 1.0 == val)) {

        return false;

        }

        // 符号

        if (val < 0) {

        *(dst++) = '-';

        val = - val;

        }

        // 获取数量级及各个数位位权

        pdig = digs;

        for (dig = 1.0; (val / dig) >= radix; dig *= radix) {

        if (pdig == pend) {

        return false;

        }

        *(pdig++) = dig;

        }

        *pdig = dig;

        // 整数部分

        do {

        dig = *(pdig--);

        n = (int) (val / dig);

        val -= (double) n * dig;

        *(dst++) = NUM[n];

        } while (pdig >= digs);

        // 获取精确度

        dou = 1.0;

        for (n = 0; n < digits; ++n) {

        dou /= radix;

        }

        // 小数部分,注意 digits 参数决定了精确度

        if (val >= dou) {

        *(dst++) = '.';

        for (dig = 1.0 / radix; (val >= dou) && (digits > 0); --digits) {

        n = (int) (val / dig);

        val -= (double) n * dig;

        dig /= radix;

        *(dst++) = NUM[n];

        }

        }

        *dst = 0;

        return true;

       }

       我自己 写的代码,可能不太好,可以参考参考,O(∩_∩)O~哈哈

copyright © 2016 powered by 皮皮网   sitemap