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

5

我需要根据当前文化习惯来使用千位分隔符和小数点。如果我们使用美国文化,则小数应该是“.”,千位分隔符应该是“,”。但对于德国文化而言,默认的小数点分隔符是“,”,千位分隔符是“。”。 为了获取日期时间分隔符,我正在使用以下代码

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

有没有类似日期/时间的东西?

搜索标题 https://www.bing.com/search?q=c%23+How+to+get+default+decimal+%2F+thousand+separator+for+current+locale,其中包括[MSDN链接](https://msdn.microsoft.com/en-us/library/system.globalization.numberformatinfo.numberdecimalseparator%28v=vs.110%29.aspx)在内的顶部结果...你真的应该考虑选择更好的搜索引擎。 - Alexei Levenkov
1
您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - Adam Tuliper
@AlexeiLevenkov 嘿,是谷歌把我带到这里的,而且第一个(并被采纳的)答案无论如何都是正确的。 :-) - BrainSlugs83
3个回答

8

7
您可以使用CultureInfoNumberFormat属性,该属性包括小数点分隔符和千位分隔符的属性。
var numberFormat = us.NumberFormat;
string decimalSeparator = numberFormat.NumberDecimalSeparator;
string thousandsSeparator = numberFormat.NumberGroupSeparator;

6

使用以下代码可以获取当前系统设置:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接