写一个C语言函数,接收一个带有负数的小数字符串,返回double
时间: 2023-02-12 08:52:22 浏览: 89
```c
double string_to_double(char* str) {
double result = 0;
int i = 0, sign = 1;
// check for negative sign
if (str[0] == '-') {
sign = -1;
i++;
}
// convert string to double
for (; str[i] != '\0'; i++) {
if (str[i] >= '0' && str[i] <= '9') {
result = result * 10 + (str[i] - '0');
} else if (str[i] == '.') {
double fraction = 0.1;
for (i++; str[i] != '\0'; i++) {
if (str[i] >= '0' && str[i] <= '9') {
result += (str[i] - '0') * fraction;
fraction *= 0.1;
} else {
break;
}
}
break;
} else {
break;
}
}
return result * sign;
}
```
该函数接收一个字符串作为参数,检查字符串是否以负号开头,并将字符串转换为double类型的数字。注意,这个函数并不能处理非法字符串或溢出情况。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)