mfc程序使用错误的小数分隔符/语言
我在Windows区域设置(葡萄牙语)中使用逗号作为小数分隔符,我开发的所有程序在格式化字符串或使用
atof
时都使用逗号。
然而,无论我的区域设置如何,我手中的这个特殊程序都坚持使用点作为小数点分隔符。
我不是在程序中的任何地方调用setlocale
或任何其他语言更改功能AFAIK。实际上我把这些代码行放在了InitInstance()
函数的最开头:
double var = atof("4,87");
TRACE("%f", fDecimal);
这个程序产生4.000000
,而另外一个产生4,870000
。
我认为项目属性中必定存在一些错位设置,但我不知道它是什么。有人可以帮忙吗?
没有找到相关结果
已邀请:
2 个回复
勘掸府迫路
掏得透垦滩
依赖于C语言环境。因此,正如另一个成员所提到的,
会将C语言环境设置为与数字相关的函数的用户区域设置(区域设置)。有关可用标志和区域设置名称的更多信息,请参阅MSDN页面。 对于那些不想更改C语言环境的人,可以使用
而不是标准
,并为其提供使用
(名称)创建的语言环境结构。
有很多选择。例如,你可以使用
(以及它的Windows
对应物),这是一个更好的选择,因为它会让你知道是否发生了错误。