Я пытаюсь отобразить мой номер, используя разделитель, из моих текущих региональных настроек.Используйте десятичный разделитель из региональных настроек в CString.Format()
Вот мой код:
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
Может ли кто-нибудь помочь мне в этом?
Я уже прочитал эту статью MSDN, но это не помогло в десятичном значении. Мне нужен конкретный формат _T («%. 6f% s»). Может быть, именно этот конкретный формат налагает период? –