首页 > 编程语言 > 详细

C语言-转化字符串为双精度浮点数(包括对科学计数法的处理)的函数atof

时间:2021-06-16 22:11:40      阅读:31      评论:0      收藏:0      [点我收藏+]
 1 //写一个把字符串转换为浮点数的程序
 2 #include <ctype.h>
 3 #include <stdlib.h> //这个头文件里含有atof的标准库函数声明
4 double atof2(char s[]){ 5 double res; int i; int sign = 1; 6 double fpart = 1.0; 7 double exp = 10; 8 int expNum = 1; 9 double n = 1.0; 10 //读掉字符串前面可能有的空格 11 for (i = 0; isspace(s[i]); i++) 12 ; 13 //读取正负的标识 14 if (s[i] == -){ 15 sign = -1; 16 i++;//把指针递增放在分支里,以免在判断不成功时向后移动 17 } 18 for(res = 0.0 ; isdigit(s[i]); i++){ 19 res = res * 10.0 + ((int)s[i] - 0); 20 } 21 if (s[i++] == .){ 22 for (fpart = 1.0; isdigit(s[i]); i++){ 23 res = res * 10.0 + ((int)s[i] - 0); 24 fpart *= 10.0; 25 } 26 } 27 if (s[i++] == e){ 28 if (s[i] == -){ 29 exp = 0.1; 30 i++; 31 } 32 expNum = atoi((s + i)) 33   while (expNum-- > 0){ 34   n *= exp; 35   } 36 } 37 res = res * sign / fpart * n; 38 return res; 39 }

2021-06-1616:48:07 BY PeaceCoder

C语言-转化字符串为双精度浮点数(包括对科学计数法的处理)的函数atof

原文:https://www.cnblogs.com/PeaceCoding-915/p/14890048.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!