我尝试使用当前区域设置的分离器来显示我的号码。
这是我的代码:
Cstring result;
Cstring myMeasure;
myMeasure.Format(_T("%.6f %s"), myDouble, myUnit));
result.Format("My volume is: %s", myMeasure);
结果等于"我的音量为:4.565600 ml"。但是使用法国区域设置,结果仍然相同(而法国小数分离器是逗号而不是时期)。
我尝试了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
的其他信息。