当我在C#中有这样的代码时:
double a = 0.003;
Console.WriteLine(a);
Run Code Online (Sandbox Code Playgroud)
它打印"0,003".
如果我有另一段代码:
double a = 0.003;
Console.WriteLine(a.ToString(CultureInfo.InvariantCulture));
Run Code Online (Sandbox Code Playgroud)
它打印"0.003".
我的问题是我需要一个点作为十进制标记,但C#默认使用逗号.此外,我不想只打印出一个双变量来输入如此长的代码.
Guf*_*ffa 36
您可以将当前线程的文化设置为您想要的任何文化:
Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.InvariantCulture;
Run Code Online (Sandbox Code Playgroud)
请注意,更改文化还会影响字符串比较和排序,日期格式以及日期和数字的分析等内容.
自.NET Framework 4.5版和.NET Core / Standard 1.0版以来,您可以通过修改CultureInfo.DefaultThreadCurrentCulture和CultureInfo.DefaultThreadCurrentUICulture属性来更改整个应用程序的区域性,而不仅仅是当前线程。
CultureInfo.DefaultThreadCurrentCulture = CultureInfo.InvariantCulture;
CultureInfo.DefaultThreadCurrentUICulture = CultureInfo.InvariantCulture;
Run Code Online (Sandbox Code Playgroud)
默认情况下,C# 不会将其设为逗号,这是您的文化。尝试明确设置文化,
System.Threading.Thread.CurrentThread.CurrentCulture = new CultureInfo("de-DE");
Run Code Online (Sandbox Code Playgroud)
链接:http : //msdn.microsoft.com/en-us/library/ms425914(v=office.12).aspx
1空字符串指定InvariantCulture config.file
默认情况下,在配置中将Culture和UICulture设置为"".
<system.web>
<globalization culture="" />
</system.web>
Run Code Online (Sandbox Code Playgroud)
2你也可以定义你的 Thread
| 归档时间: |
|
| 查看次数: |
45492 次 |
| 最近记录: |