c++ char*转int double

正负皆可转;靠自己勤劳的双手与智慧...上代码,可以转载。有好的逻辑请留言,万般感谢!

double sqrt(double sum,int i)
{ 
    double root = sum;
    while (i>0,i--)
        sum *= root;

    return sum;
}

double hexToDec(char *str)
{
    int i = 0;
    float sumd = 0.0;
    double sumf = 0.0;
    bool error = false;
    bool negative = false;

    for (; *str; str++) {

        if (*str == '-') {
            negative = true;
            continue;
        }
        if (*str == '.') {
            error = true;
            continue;
        }

        if (error)
        {
            sumf = sumf + (*str - '0')/sqrt(10.0,i);
            i++;
        }
        else {
            sumd = 10.0 * sumd + (*str - '0');
        }
    }

    if (negative)
        sumd = -(sumd + sumf);
    else 
        sumd += sumf;

    return sumd;
}

原生的函数

数字字符串互转

 

### 回答1: 可以使用C++中的`atof()`函数将`char*`类型换成`double`类型。例如: ```c++ #include <iostream> #include <cstdlib> using namespace std; int main() { char str[] = "3.14"; double num = atof(str); cout << num << endl; return 0; } ``` 输出结果为: ``` 3.14 ``` 需要注意的是,`atof()`函数只能将符合标准格式的字符串换成`double`类型,否则会返回0。 ### 回答2: 要将char*换为double类型,可以使用标准库函数strtod来实现。 首先,我们需要引入cstring头文件,这个头文件中包含了strtod函数的声明。然后,调用strtod函数来进行换。 strtod函数有两个参数,第一个参数是要换的字符串,即char*类型的指针;第二个参数是一个指向指针的指针,用于存储换后的double值。 示例代码如下: #include <cstring> double convertToDouble(char* str) { double result = 0.0; char* endPtr; // 用于存储换后的字符指针的指针 result = strtod(str, &endPtr); // 调用strtod函数进行换 return result; } 在这个函数中,我们首先初始化了换后的double值为0.0。然后,调用strtod函数,将str换为double类型并存储到result中。同时,endPtr指向的地址会被更新为换后的字符串之后的位置。 最后,返回result即可。 需要注意的是,如果换失败,strtod函数会返回0.0,并且endPtr的值与str的值相同。 使用这个函数时,只需将char*类型的字符串传递给convertToDouble函数即可得到换后的double值。 另外,还可以通过使用字符串流(stringstream)来实现char*到double的类型换,这也是一种常用的方法。具体实现过程略有不同,但基本思路相同。 ### 回答3: 要将char*换为double类型,可以使用标准库函数atof()进行换。以下是一个示例代码: ``` #include <stdlib.h> int main() { char* str = "3.14"; // 待换的字符串 double num = atof(str); // 使用atof()函数将字符串换为double类型 printf("换后的结果为: %lf\n", num); return 0; } ``` 这段代码使用了stdlib.h头文件中的函数atof()将字符串str换为double类型的数值。在这个例子中,字符串"3.14"被换为对应的double类型数值3.14。最后,使用printf()函数将换后的结果打印出来。运行代码后,输出为"换后的结果为: 3.140000"。 atof()函数的工作原理是将输入的字符串解析为一个浮点数,并返回对应的double类型数值。然后,我们可以将该数值赋给一个double类型的变量,以便进行后续操作。 需要注意的是,atof()函数只能够换合法格式的浮点数字符串,如"3.14"。如果换的字符串不合法,函数将返回0。此外,我们还需要确保换的字符串不包含任何非数字字符,否则换结果可能是无效的。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bug狂人

让我们和小姐姐唠嗑可以肢愣起来

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值