将带小数值的矢量字符串转换为整数

时间:2016-07-29 09:42:56

标签: c++ vector

我有一个带小数值的矢量字符串我想将它转换为整数,如 67.35 ----> 6735 atoi不工作?

int n;   
std::vector<std::string> value;   
value= "67.35"

我希望n 6735 我知道我可以编写一个很长的代码来执行此操作,但我会问这是否已经完成。

2 个答案:

答案 0 :(得分:1)

这可能是你的解决方案吗?希望这会有所帮助。

stof

您也可以查看这些内容:

How to convert a number to string and vice versa in C++

How do I convert vector of strings into vector of integers in C++?

  

&#34;无论如何,真正的答案是使用C ++的stoi和{{1}}。欺骗是非常彻底的。&#34; (通过&#34;轨道中的轻盈竞赛&#34;在评论中)

<强>链接: stof stoi

答案 1 :(得分:0)

如果您只想存储一个值,则不需要矢量。最直接的方法是:

#include <string> // This needs to be in your headers

float n;
std::string value = "47.65";
n = stof(value) // n is 47.65. Note that stof is needed instead of stoi for floats

如果您需要多个值,请按以下步骤操作:

#include <string>

std::vector<std::string> values;
values.push_back("47.65");
values.push_back("12.34");
//...

std::vector<float> floatValues;
for (int i = 0; i <= values.size(); i++) {
    floatValues.push_back(stof(values[i]));
    // intValues is a vector containing 47.65 and 12.34
}

如果您想在解析字符串之前删除字符串中的小数位,可以使用以下代码:

#include <algorithm> // This also needs to be in your headers
#include <string>

int n;
std::string value = "47.65";
std::replace(value.begin(), value.end(), '.', '')
n = stoi(value) // n is 4765. This time we're using atoi since we have an int