我在英国。我在德国有一台 Windows 2008 服务器,上面安装了 SQL Server 2008 R2 Express。Windows 的区域设置设置为英国。SQL Server 语言设置为英语。当我跑
sp_helplanguage @@LANGUAGE
它表明它设置为
us_english
我在数据库中有许多表,其中包含浮点数据类型。当我使用 SSMS 更改浮点值之一时,如果我输入
1234.1234
首先它显示为
1234,1234
然后当我单击该行以保存它时,它显示为
12341234
ASP.NET 应用程序通过存储过程提供数据并放入双精度(VB.NET)中,它执行
String.Format("{0:#0.0000}", dMyDouble)
这呈现为
12341234,0000
不用说,在我的本地服务器(全部基于英国)上,所有数据库输入的数字都会按我的预期显示(1234.1234),.NET 会按我的预期格式化它们(1234.1234)。我知道我的欧洲朋友在英国使用与我们不同的符号,但我需要输出英国格式 - 更重要的是数据库中的浮点数!
我想.NET 格式不正确的事实纯粹与数字没有存储准确性的事实有关。
我还通过使用小数列 (18, 4) 进行了一些操作,得到了类似的结果。当我使用点 (.) 键入 1234.1234 时,它会替换为逗号 (,)。保存该行时,它另存为
12341234.0000