簡體   English   中英

將Char轉換為Double C ++

[英]Convert Char to Double C++

更新:我正在傳遞一個字符串變量,並逐個字符地遍歷字符串。 每當我遇到小數時,我都想將字符串的前一個位置(即2)和字符串的下一個位置(即5)合並為一個雙精度數。 那么我將如何制作char 2,char。 ,將char 5變成一個整數double值(2.5)? 不使用STL類或向量。 我繼續嘗試以下內容。 但是,每當我在var行中進行處理時,它都不會將值2.5保留為字符串。 它包含一個:“•”。 我在做錯什么嗎?

如果您的意思是將字符串解析為雙精度,那么我將采用另一種方法來遍歷字符串。 首先,我將創建一個按空間分割的迭代器,以避免檢查是否存在“。”。 然后,我將遍歷這個新的迭代器。 像這樣

#include <iostream>
#include <string>
#include <sstream>
#include <iterator>
#include <vector>


int main() {
    using namespace std;
    double num;
    string variableName = "4 5 7 2.5";
    istringstream iss(variableName);
    vector<string> nums{istream_iterator<string>{iss},
        istream_iterator<string>{}};
    for (int i = 0; i < nums.size(); i++) {
        num = stod(nums[i]);
    }
    return 0;
}

這種方法的優點是,不管小數點之前和之后有多少個字符,它都能起作用。

我會做這樣的事情:

double x;
std::string temp = "";
std::string variableName = "4 5 7 2.5";
std::string::size_type sz;     // alias of size_t
for (int i = 0; i < variableName.length(); i++) // iterates through variableName
{
    if (variableName[i] == '.') {
        temp += variableName[i - 1];
        temp += variableName[i];
        temp += variableName[i + 1];
        x = stod(temp, &sz);
    }
}
return x;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM