1.atof(将字串转换成浮点型数)
功 能: 把字符串转换成浮点数
名字来源:ascii to floating point numbers 的缩写
相关函数 atoi,atol,strtod,strtol,strtoul
表头文件 #include <stdlib.h>
定义函数 double atof(const char *nptr);
函数说明 atof()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('\0')才结束转换,并将结果返回。参数nptr字符串可包含正负号、小数点或E(e)来表示指数部分,如123.456或123e-2。
返回值 返回转换后的浮点型数。
附加说明 atof()与使用strtod(nptr,(char**)NULL)结果相同。
程序例:
#include <stdlib.h> #include <stdio.h> int main() { float f; char *str = "12345.67"; f = atof(str); printf("string = %s float = %f\n", str, f); return 0; }
2.函数名: gcvt
功 能: 把浮点数转换成字符串,同时返回一个指向字符串的存储位置的指针。
用 法: char *gcvt(double value, int ndigit, char *buf);
包含头文件:<stdlib.h>
参数
value——被转换的值。
Digits——存储的有效数字位数。
Buffe——结果的存储位置。
返回值
返回一个指向结果的存储位置的指针[1]
说明
gcvt函数把一个浮点值转换成一个字符串(包括一个小数点和可能的
符号字节)并存储该字符串在buffer中。该buffer应足够大以便容纳转换
的值加上结尾的空字符('\0'),它是自动添加的。如果一个缓冲区的尺寸为
digits的尺寸+1,该函数覆盖该缓冲区的末尾。这是因为转换的字符串包
括一个小数点以及可能包含符号和指数信息。不提供上溢出。gcvt试图
以十进制格式产生digits数字,如果不可能,它以指数格式产生digits数字,
在转换时可能截除尾部的0。
程序例:
#include <stdlib.h> #include <stdio.h> int main(void) { char str[25]; double num; int sig = 5; /* significant digits */ /* a regular number */ num = 9.876; gcvt(num, sig, str); printf("string = %s\n", str); /* a negative number */ num = -123.4567; gcvt(num, sig, str); printf("string = %s\n", str); /* scientific notation */ num = 0.678e5; gcvt(num, sig, str); printf("string = %s\n", str); return(0); }