我有一个带小数值的矢量字符串我想将它转换为整数,如 67.35 ----> 6735 atoi不工作?
int n;
std::vector<std::string> value;
value= "67.35"
我希望n 6735 我知道我可以编写一个很长的代码来执行此操作,但我会问这是否已经完成。
答案 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;在评论中)
答案 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