C++ printf с %f, но локализованный для страны пользователя

Я использую следующий синтаксис C++ для вывода значения с плавающей запятой на платформе Windows:

printf("%.2f", 1.5);

Он хорошо работает, если я запускаю его на английской учетной записи пользователя. Я предполагал, что если я запустил его, скажем, на французской учетной записи пользователя, выход будет 1,50 вместо 1,50.

почему я этого не вижу и как получить желаемый результат?

2 ответов


символ radix (т. е. '.'or ',') определяется текущей локали. Локаль по умолчанию (по крайней мере, для систем Windows) - "C", которая определяет '. в качестве символа.

вы можете установить текущую локаль для программы C / C++, используя


попробуйте использовать функцию setlocale() функция http://www.cplusplus.com/reference/clibrary/clocale/setlocale/