目标
将字符串转为 double 类型。转自 c程序设计语言第2版。
方法 1:
整数部分、小数部分单独计算,然后相加。
- 整数部分转换参考这篇文章
- 小数部分使用如下公式。
0.1234 = 1 * 10-1 + 2 * 10-2 + 3 * 10-3 + 4 * 10-4。
得到每位数,从前往后,每项依次除以 10、100、1000…
所以 power 默认从 10 开始,每次循环乘以 10。
double atof(char s[]) {
int sign = 1;
int i = 0;
switch (s[0]) {
case '-':
sign = -1;
i = 1;
break;
case '+':
i = 1;
break;
}
int n = 0;