如何在 .net 中获取当前语言环境的默认小数点/千位分隔符

How to get default decimal / thousand separator for current locale in .net

根据当前文化,我需要千位和小数点分隔符。如果我们使用美国文化,那么十进制应该是“.”对于千,它应该是','。但对于德国文化,默认的小数点分隔符是“,”,千位分隔符是“.”。 为了获取日期时间分隔符,我使用以下代码

               CultureInfo us = new CultureInfo("en-US");
                string shortUsDateFormatString = us.DateTimeFormat.ShortDatePattern;
                string dateseparator= us.DateTimeFormat.DateSeparator;
                string timeseparator= us.DateTimeFormat.TimeSeparator;

有什么方法可以像日期/时间一样吗?

NumberFormat 属性 有关于货币和数字的信息。

您可以使用 CultureInfoNumberFormat 属性,其中包括小数分隔符和千位分隔符的属性

var numberFormat = us.NumberFormat;
string decimalSeparator = numberFormat.NumberDecimalSeparator;
string thousandsSeparator = numberFormat.NumberGroupSeparator;

通过这段代码可以获得当前系统设置:

System.Globalization.CultureInfo ci = System.Threading.Thread.CurrentThread.CurrentCulture;
FORMAT_NUMBER_DECIMALSEPARATOR = ci.NumberFormat.CurrencyDecimalSeparator;
FORMAT_NUMBER_DIGITGROUP = ci.NumberFormat.CurrencyGroupSeparator;