当我在C#中有如下代码:
double a = 0.003;
Console.WriteLine(a);
它会输出"0,003"。
如果我有另一段代码:
double a = 0.003;
Console.WriteLine(a.ToString(CultureInfo.InvariantCulture));
它会打印出"0.003"。
我的问题是我需要一个点作为小数点,但是C#默认使用逗号。此外,我不想为了打印出一个双精度变量而输入那么长一行代码。
当我在C#中有如下代码:
double a = 0.003;
Console.WriteLine(a);
它会输出"0,003"。
如果我有另一段代码:
double a = 0.003;
Console.WriteLine(a.ToString(CultureInfo.InvariantCulture));
它会打印出"0.003"。
我的问题是我需要一个点作为小数点,但是C#默认使用逗号。此外,我不想为了打印出一个双精度变量而输入那么长一行代码。
您可以将当前线程的区域设置为任何您想要的区域:
Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.InvariantCulture;
请注意,更改区域设置也会影响字符串比较和排序、日期格式以及日期和数字的解析。
global.asax
中的Application_BeginRequest
或页面类中的第一个事件中。 - GuffaThread
类中有一个静态成员确定新线程的文化。更多阅读:http://blog.rastating.com/setting-default-currentculture-in-all-versions-of-net/ - Guffa自 .NET Framework 4.5 和 .NET Core/Standard 1.0 版本以来,您可以通过修改 CultureInfo.DefaultThreadCurrentCulture 和 CultureInfo.DefaultThreadCurrentUICulture 属性来更改整个应用程序的区域设置,而不仅仅是当前线程的区域设置:
CultureInfo.DefaultThreadCurrentCulture = CultureInfo.InvariantCulture;
CultureInfo.DefaultThreadCurrentUICulture = CultureInfo.InvariantCulture;
1 空字符串在config.file
中指定为InvariantCulture。
默认情况下,在config中Culture和UICulture被设置为空字符串。
<system.web>
<globalization culture="" />
</system.web>
2 你也可以在你的Thread
上定义。
C#默认不会将逗号作为分隔符,这取决于你的文化背景。尝试显式设置文化背景。
System.Threading.Thread.CurrentThread.CurrentCulture = new CultureInfo("de-DE");
链接: http://msdn.microsoft.com/en-us/library/ms425914(v=office.12).aspx
该链接为微软官方文档,介绍了如何在Office应用程序中使用XML数据。此文档提供了示例代码和详细的说明,以帮助开发人员理解在Office中使用XML数据的过程。WriteLine()
并输入一个double类型的值时,它内部会进行如下调用:Console.WriteLine(a.ToString(CultureInfo.CurrentCulture));
现在的任务是将CurrentCulture
替换为InvariantCulture
。以下代码可完成此操作:
Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;
CultureInfo.InvariantCulture
设置为默认值。CultureInfo
实例,可以使用一个空字符串("")命名不变文化。Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture
<globalization>
配置元素中设置区域性。