C# 数字格式当前区域性
我试图获取数字格式,以便使用当前区域性从字符串转换为十进制,我的系统中有下一个配置: 我想使用当前区域性信息,但使用自定义格式,如十进制符号、数字分组符号等 有没有办法恢复自定义格式配置 Windows允许用户重写的标准属性值 CultureInfo对象及其关联对象,通过使用区域和 控制面板中的语言选项。由返回的CultureInfo对象 CurrentCulture属性反映了 以下情况:C# 数字格式当前区域性,c#,internationalization,format,C#,Internationalization,Format,我试图获取数字格式,以便使用当前区域性从字符串转换为十进制,我的系统中有下一个配置: 我想使用当前区域性信息,但使用自定义格式,如十进制符号、数字分组符号等 有没有办法恢复自定义格式配置 Windows允许用户重写的标准属性值 CultureInfo对象及其关联对象,通过使用区域和 控制面板中的语言选项。由返回的CultureInfo对象 CurrentCulture属性反映了 以下情况: 如果当前线程区域性由Windows隐式设置 GetUserDefaultLocaleName函数 如果
- 如果当前线程区域性由Windows隐式设置 GetUserDefaultLocaleName函数
- 如果当前线程区域性 由DefaultThreadCurrentCulture属性定义的对应于 当前Windows系统区域性
- 如果当前线程区域性为 显式设置为CreateSpecificCulture返回的区域性 方法,并且该区域性对应于当前Windows系统 文化李>
- 如果当前线程区域性显式设置为区域性 由CultureInfo(字符串)构造函数实例化,并且该区域性 对应于当前Windows系统区域性
decimal number;
if (!decimal.TryParse(numberString, NumberStyles.Number, CultureInfo.CurrentCulture, out number))
{
// Something wrong...
}
您可以从
CurrentThread
获取当前区域性编号格式
var format = Thread.CurrentThread.CurrentCulture.NumberFormat;
编辑:
用户可能会选择覆盖与关联的某些值
通过地域和语言来了解Windows的当前文化
控制面板的选项部分。例如,用户可以选择
以其他格式显示日期或使用其他货币
而不是区域性的默认值
如果UseUserOverride为true,则
指定的区域性与Windows的当前区域性匹配
CultureInfo使用这些覆盖,包括
由返回的DateTimeFormatInfo实例的属性
DateTimeFormat属性和NumberFormatInfo的属性
由NumberFormat属性返回的实例。如果用户设置
与与CultureInfo关联的区域性不兼容,例如
例如,如果所选日历不是可选日历之一,
方法的结果和属性值如下所示
未定义
So
var decimalDigits=format.NumberDecimalDigits代码>应返回您的自定义更改。关闭,但问题是恢复当前区域性的自定义格式。@GonzaloAguayo检查编辑。检查UseUserOverride是否为true。