string和double之间的相互转换

Posted 一棵球和一枝猪

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了string和double之间的相互转换相关的知识,希望对你有一定的参考价值。

很多人都写过这个标题的文章,但本文要解决的是确保负数的string和double也可以进行转换。

代码如下:

string转double

 1 double stringToDouble(string num)
 2 {
 3     bool minus = false;      //标记是否是负数  
 4     string real = num;       //real表示num的绝对值
 5     if (num.at(0) == -)
 6     {
 7         minus = true;
 8         real = num.substr(1, num.size()-1);
 9     }
10 
11     char c;
12     int i = 0;
13     double result = 0.0 , dec = 10.0;
14     bool isDec = false;       //标记是否有小数
15     unsigned long size = real.size();
16     while(i < size)
17     {
18         c = real.at(i);
19         if (c == .)
20         {//包含小数
21             isDec = true;
22             i++;
23             continue;
24         }
25         if (!isDec) 
26         {
27             result = result*10 + c - 0;
28         }
29         else
30         {//识别小数点之后都进入这个分支
31             result = result + (c - 0)/dec;
32             dec *= 10;
33         }
34         i++;
35     }
36 
37     if (minus == true) {
38         result = -result;
39     }
40 
41     return result;
42 }

double转string

string Chars::doubleToString(double num)
{
    char str[256];
    sprintf(str, "%lf", num);
    string result = str;
    return result;
}

by 一棵球

以上是关于string和double之间的相互转换的主要内容,如果未能解决你的问题,请参考以下文章

JAVA字符串与整形浮点类型之间的相互转换总结

c++ int,double等数字类型与string的相互转换

字符串和数字之间的相互转化

json和string 之间的相互转换

double和char之间怎样转换?谢谢!

Java中String和Int的相互转换