You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#如何全局设置CultureInfo数字小数点分隔符为点而非逗号

全局设置C#默认小数点为点分隔符的实现方案

实现方法

方法1:入口代码全局配置(兼容所有主流.NET版本)

在程序启动入口的最开头位置添加如下配置代码即可,配置会作用于整个程序的所有线程:
首先引入必需的命名空间:
using System.Globalization;

.NET Core 3.0+ / .NET 5及以上版本配置:

// 全局设置所有线程默认使用不变文化,小数点默认采用点分隔
CultureInfo.DefaultThreadCurrentCulture = CultureInfo.InvariantCulture;
CultureInfo.DefaultThreadCurrentUICulture = CultureInfo.InvariantCulture;

.NET Framework版本补充配置:

如果是.NET Framework项目,除上述代码外,还需要额外配置当前启动线程的文化:

using System.Threading;
using System.Globalization;

// 配置当前启动线程的文化
Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;
Thread.CurrentThread.CurrentUICulture = CultureInfo.InvariantCulture;
// 配置后续新建线程默认使用不变文化(.NET Framework 4.5及以上版本支持)
CultureInfo.DefaultThreadCurrentCulture = CultureInfo.InvariantCulture;
CultureInfo.DefaultThreadCurrentUICulture = CultureInfo.InvariantCulture;

注意:配置代码必须放在所有业务逻辑执行之前,比如控制台项目的Main方法第一行、WinForm项目Program.cs的Main方法开头、WPF项目App.xaml.cs的OnStartup方法开头。

方法2:项目文件配置(仅适用.NET 5及以上版本)

直接修改项目的.csproj文件,在<PropertyGroup>节点下添加如下配置即可:

<InvariantGlobalization>true</InvariantGlobalization>

该配置会让整个程序强制使用全球化不变模式,完全忽略系统的区域文化设置,默认小数点为点分隔。

验证

配置完成后原有代码无需做任何修改,输入4.6即可正常解析,不会再抛出格式异常。

内容的提问来源于stack exchange,提问作者a2bme

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 12:39:02