Я пытаюсь отобразить свой номер, используя разделитель из моих текущих региональных настроек.
Вот мой код:
Cstring result;
Cstring myMeasure;
myMeasure.Format(_T("%.6f %s"), myDouble, myUnit));
result.Format("My volume is: %s", myMeasure);
Результат равен, например, «Мой объем: 4,565600 мл».
Но при использовании французских региональных настроек результат остается тем же (тогда как французский десятичный разделитель — запятая, а не точка).
Я попытался метод setlocale () безуспешно.
char* originalCulture = setlocale(LC_ALL, NULL); // save original culture
setlocale(LC_ALL,"");
Cstring result;
Cstring myMeasure;
myMeasure.Format(_T("%.6f %s"), myDouble, myUnit));
result.Format("My volume is: %s", myMeasure);
setlocale(LC_ALL, originalCulture); // restore original culture
Может ли кто-нибудь помочь мне в этом?
Вам следует позвонить setlocale(LC_ALL, "")
или же setlocale(LC_ALL, "your_locale")
прежде чем делать что-либо еще, чтобы применить локаль. Первый устанавливает языковой стандарт по умолчанию для операционной системы, второй устанавливает конкретный языковой стандарт. Также рассмотрите проверку эта статья MSDN для дополнительной информации о setlocale
,
Других решений пока нет …