首页  

C语言字符串转浮点数     所属分类 c 浏览量 16
double atof(const char *nptr);

double strtod(const char *str, char **endptr) 
把str 转换为浮点数
如果 endptr 不为空,则指向不能转换部分的第一个字符处

忽略前面的空白字符  碰到非数字字符 ,停止解析


strtod 第二个参数 char **endptr 理解

char *str= "0.99abc";
char *ptr;
double value = strtod(str, &ptr);
printf("value=%lf\n", value);
printf("string=%s", ptr);
   
strtod 内部,ptr 指向 0.99abc 中的 a , 因此需要 传入 ptr的指针 (指针的指针)
类似用法
定义一个整数 ,然后传入该整数的指针,在方法内部修改值



#include "stdio.h" #include "stdlib.h" int main(){ // 0.000000 printf("%lf\n",atof("a")); // 0.000000 printf("%lf\n",atof("a1.0")); // 1.000000 printf("%lf\n",atof("1.0a")); char *str= "0.99abc"; char *ptr; double value = strtod(str, &ptr); printf("value=%lf \n", value); printf("string=%s \n", ptr); return(0); } 输出 0.000000 0.000000 1.000000 value=0.990000 string=abc

上一篇     下一篇
C语言获取时间戳秒毫秒微秒

java 和 C 循环和递归性能比较

C++11 chrono 获取时间戳

C语言排序和搜索

C语言 rand srand rand_r

C语言动态内存分配与释放