stol和stoi上的C++精度,用于用户输入



试图解析字符串中的浮点值,它以0的精度返回,我正在寻找0.0

代码:

queue<Car> getInputData() {
string input;
string line;
string delin = " ";
string::size_type sz = 0.0; 
int counter = 0;
queue<Car> cars;
while (getline(std::cin, line) && !line.empty()) 
{
if (counter != 0)
{
queue<string> parse = getStringList(line, " ");
_directions dir;
int cid = std::stoi(parse.front());
parse.pop();
long arriv = std::stoi(parse.front()); //This returns 1 rather than 1.1
parse.pop();
dir.start = parseToDirection(parse.front(), true);
parse.pop();
dir.end = parseToDirection(parse.front(), false);
parse.pop();
Car car = Car(dir, cid, arriv);
cars.push(car);
}
counter++;
}
return cars; 
}

样本输入:

cid arrival_time dir_original dir_target

0 1.1^^

1 2.0 ^^

2 3.3 ^<

3 3.5伏

4.2伏>

5 4.4^^

6 5.7>^

7 5.9<^

我尝试过的内容:我试过stol、stoi、stold、stod,但都不适用于精确性。这可能吗?还是有一件作品我不见了?

如果您想解析浮点数字,您需要使用stod(或stofstold,但stod通常是您想要的(。您需要将结果分配给一个变量,该变量的类型允许使用浮点数,通常为double。(floatlong double对应于stofstold。(

long是一个整数类型。

相关内容

  • 没有找到相关文章

最新更新