如何在.net中获得当前区域设置的默认十进制/千位分隔符

本文关键字:十进制 默认 分隔符 千位 设置 net 区域 | 更新日期: 2023-09-27 18:10:44

我需要根据当前文化设置千位和小数分隔符。如果我们使用的是美国文化,那么小数应该是十进制。"一千次都应该是这样。"但是对于德国文化,默认的小数分隔符是',',千位分隔符是'。'。对于获取日期时间分隔符,我使用以下代码

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

有没有类似date/time的东西

如何在.net中获得当前区域设置的默认十进制/千位分隔符

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;