解析后十进制不显示组(千)分隔符
Posted
技术标签:
【中文标题】解析后十进制不显示组(千)分隔符【英文标题】:Decimal not showing group(thousand) separator after parse 【发布时间】:2015-12-05 23:22:45 【问题描述】:在控制台应用程序中,我创建了 2 个小数:
-
使用文字值
使用字符串解析
我已将我的文化设置为“en-GB”
System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-GB");
System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("en-GB");
Decimal money = 14343431.948M;
Decimal moneyConversion = decimal.Parse("-34,555.897");
string decimalString = money.ToString("N3");
string moneyConversionString = moneyConversion.ToString("N3");
Console.WriteLine("Decimal value: " + decimalString); //prints 14,343,431.948
Console.WriteLine("Decimal value Converted: " + moneyConversion); //-34555.897
第一个写入行按预期显示十进制表示,而第二个打印 -34555.897 但我期待 -34,555.897,我错过了分隔千位的逗号。怎么会?
【问题讨论】:
【参考方案1】:这就是问题所在:
Console.WriteLine("Decimal value Converted: " + moneyConversion); //-34555.897
您使用的是moneyConversion
(decimal
值)而不是moneyConversionString
。如果您将其更改为:
Console.WriteLine("Decimal value Converted: " + moneyConversionString);
你会得到你期望的格式。否则你只是有效地调用moneyConversion.ToString()
,它将使用默认的“G”格式。
【讨论】:
一直在读变量名,却没有意识到它们是……天哪!!!在这上面浪费了这么多时间!!真丢脸。【参考方案2】:您正在打印小数点的值(即moneyConversion
),而不是它的字符串表示形式(moneyConversionString
)。
【讨论】:
说真的,有时候我需要休息一下。以上是关于解析后十进制不显示组(千)分隔符的主要内容,如果未能解决你的问题,请参考以下文章