Пытаясь разобрать число с плавающей точкой в строке, он возвращает с точностью до 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 прибытие_ времени dir_original dir_target
0 1,1 ^ ^
1 2,0 ^ ^
2 3,3 ^ <</p>
3 3,5 vv
4 4,2 В>
5 4,4 ^ ^
6 5,7> ^
7 5,9 <^ </p>
Что Я пробовал: я пробовал Stol, Stoi, Stold, Stod, и ни один из них не работает для точности. Это возможно? Или есть работа вокруг которой я скучаю?