在CString.Format()中使用区域设置中的小数点分隔符

时间:2016-12-20 14:24:18

标签: c++ localization decimal-point

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

这是我的代码:

select
    person,
    generate_series(
        date_trunc('month', startdate), 
        enddate, '1 month'
    )::date as month
from rfem
order by 1, 2
;
 person |   month    
--------+------------
  12345 | 2014-04-01
  12345 | 2014-05-01
  12345 | 2014-06-01
  12345 | 2014-07-01
  12345 | 2014-08-01
  12345 | 2014-09-01
  12345 | 2014-10-01
  12345 | 2014-11-01
  67890 | 2014-03-01
  67890 | 2014-04-01
  67890 | 2014-05-01

结果等于例如“我的体积为:4.565600 mL”。 但是使用法语区域设置,结果仍然相同(而法语小数点分隔符是逗号而不是句点)。

我尝试了setlocale()方法。

Cstring result;    
Cstring myMeasure;  

myMeasure.Format(_T("%.6f %s"), myDouble, myUnit));
result.Format("My volume is: %s", myMeasure);

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

在执行任何其他操作以应用区域设置之前,您应该致电setlocale(LC_ALL, "")setlocale(LC_ALL, "your_locale")。前者设置操作系统的默认语言环境,后者设置特定的语言环境。另请考虑检查this MSDN article以获取有关setlocale

的其他信息