C++ 在CString.Format()中使用区域设置中的十进制分隔符

C++ 在CString.Format()中使用区域设置中的十进制分隔符,c++,localization,decimal-point,C++,Localization,Decimal Point,我尝试使用当前区域设置中的分隔符显示我的号码 这是我的密码: Cstring result; Cstring myMeasure; myMeasure.Format(_T("%.6f %s"), myDouble, myUnit)); result.Format("My volume is: %s", myMeasure); 结果等于例如“我的体积为:4.565600 mL”。 但使用法语区域设置,结果仍然相同(而法语小数点分隔符是逗号而不是句号) 我尝试了setlocale()

我尝试使用当前区域设置中的分隔符显示我的号码

这是我的密码:

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\u ALL,“”)
setlocale(LC\u ALL,your\u locale”)
。前者设置操作系统的默认语言环境,后者设置特定的语言环境。还考虑检查关于<代码> StasLaLe> 的附加信息。

我已经阅读了MSDN文章,但是它对小数没有帮助。我需要一个特定的格式(“%.6f%s”)。也许正是这种特定的格式强加了周期?