运行时十进制符号更改
Posted
技术标签:
【中文标题】运行时十进制符号更改【英文标题】:Runtime decimal symbol change 【发布时间】:2021-09-24 06:59:04 【问题描述】:在控制面板、区域中更改小数点时出现问题。 如果我有一个逗号,然后将其设置为点,应用程序会将浮点数据小数分隔符从逗号更改为点。但在下一次数据更新后,它又变回逗号,即使在 Windows 设置中十进制符号设置为点。
我在显示数据之前尝试使用CultureInfo.CurrentCulture.ClearCachedData()
,但无济于事。
奇怪的是,我第一次换了符号后,CultureInfo.CurrentCulture.NumberFormat.numberDecimalSeparator
属性也相应更新了,但是下一组数据来后,又变回原来的十进制符号了。
有没有办法获取在 windows 设置中更新的十进制符号并在应用程序中设置它,所以它不会将它改回以前的小数?
【问题讨论】:
请添加minimal reproducible example。 【参考方案1】:使用类NumberFormatInfo
。提供数字格式信息,还允许您更改值的格式
更多信息microsoft docs numberformatinfo
NumberFormatInfo nfi = new NumberFormatInfo();
string NumberDecimalSeparator = nfi.NumberDecimalSeparator;
string PercentSymbol = nfi.PercentSymbol;
//more..................................
if(nfi.NumberDecimalSeparator == ".")
nfi.NumberDecimalSeparator = ",";
else
nfi.NumberDecimalSeparator = ".";
decimal a = 0.25;
Console.WriteLine(a.ToString(nfi));
【讨论】:
以上是关于运行时十进制符号更改的主要内容,如果未能解决你的问题,请参考以下文章