string和double之間的相互轉換(C++)


很多人都寫過這個標題的文章,但本文要解決的是確保負數的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 doubleToString(double num)
{
    char str[256];
    sprintf(str, "%lf", num);
    string result = str;
    return result;
}

歡迎轉載和指點,轉載請注明出處

by 一棵球


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM