答案 0 :(得分:0)
Windows允许用户覆盖的标准属性值 CultureInfo对象及其关联对象的使用区域和 控制面板中的语言选项。返回的CultureInfo对象 CurrentCulture属性反映了这些用户覆盖 以下情况:
如果Windows隐式设置当前线程文化 GetUserDefaultLocaleName函数。
如果是当前的线程文化 由DefaultThreadCurrentCulture属性定义的对应 当前的Windows系统文化。
当您传递CurrentCulture时,它将用于将字符串传递给小数。
decimal number;
if (!decimal.TryParse(numberString, NumberStyles.Number, CultureInfo.CurrentCulture, out number))
{
// Something wrong...
}
答案 1 :(得分:0)
您可以从CurrentThread
。
var format = Thread.CurrentThread.CurrentCulture.NumberFormat;
修改强>
用户可能会选择覆盖与之关联的某些值 Windows的当前文化通过区域和语言 控制面板的选项部分。例如,用户可能会选择 以不同的格式显示日期或使用其他货币 比文化的默认值。
如果UseUserOverride为true且为 指定的文化与当前的Windows文化相匹配 CultureInfo使用这些覆盖,包括用户设置 由...返回的DateTimeFormatInfo实例的属性 DateTimeFormat属性,以及NumberFormatInfo的属性 NumberFormat属性返回的实例。如果是用户设置 与CultureInfo相关的文化不相容 例如,如果所选日历不是OptionalCalendars之一, 方法的结果和属性的值是 未定义。
因此var decimalDigits = format.NumberDecimalDigits;
应该返回您的自定义更改。