Чем отличается запятая от точки в double?

Когда я с клавиатуры ввожу 328,1, я получаю ответ: 99.9696, а если ввожу 328.1, то все нормально. В чем разница между точкой и запятой?

double f, m;
cout << "Введите длину(в футах): ";
cin >> f;
m = f / 3.281;
cout << f << " футов = " << m << " метров\n";

введите сюда описание изображения

введите сюда описание изображения


Ответы (1 шт):

Автор решения: Harry

Разница в том, что если не принять специальные меры, чтоб запятая считалась разделителем целой и дробной частей числа. Стандартно таковым в С++ является точка.

Так что когда вы вводите 328,1 - считывается только 328, затем идет запятая, которой в числе быть не может, так что на этом чтение завершается, и f принимает значение 328.

Кстати, при этом в буфере ввода остается запятая, так что если бы вы написали далее еще один оператор чтения числа - то он бы просто не работал, переведя при этом поток cin в состояние fail.

→ Ссылка