我的代码使用 CString 构造一些SQL WHERE子句,如下所示:
strTemp.Format(_T("[Reals1] = CSng('%.10f') AND [Reals2] = CSng('%.10f') AND [Reals3] = CSng('%.10f') AND "), m_Reals[0], m_Reals[1], m_Reals[2]);
这在英语和(例如)西班牙语中都可以正常工作,其中小数点分隔符是逗号(即,在西班牙语中,实数格式为“ 10,0000”而不是“ 10.0000”),并且对于查询。
但是,如果我将我的地区格式和非Unicode程序的语言设置为格鲁吉亚语,则 CString 格式不起作用。 Georgian还使用逗号分隔符,但是 CString 格式会插入一个点,而SQL会引发数据类型不匹配错误。
我知道格鲁吉亚语有其自己的脚本等,但这不应该影响数字格式。为什么 CString 格式仅部分处理特定于语言环境的格式?