我刚刚经历了一个非常奇怪的问题,我希望有人可以解释为什么会这样?
我有一个在本地系统帐户下作为Windows服务运行的应用程序。
运行Windows服务时,在.ToString()
的两倍上调用515.45
,它返回515,45
。
尽管我的区域设置设置为使用.
作为分隔符,而不是,
但是,当通过Visual Studio运行确切的代码时,它会正确返回515.45
。
我试图通过VS和Windows服务来理解为什么小数点分隔符会有所不同?
我正在运行Windows 8.1 Pro。地区设置为英国,位于南非。
答案 0 :(得分:1)
这是因为该服务在与用于运行Visual Studio的用户不同的用户下运行。
您可以将文化设置复制到control panel中的系统帐户(我不知道在Windows 8中是否已更改,但我不这么认为)。