解析后十进制不显示组(千)分隔符

Decimal not showing group(thousand) separator after parse

在控制台应用程序中,我创建了 2 位小数:

  1. 使用文字值
  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,我缺少分隔千位的逗号。怎么会?

这是问题所在:

Console.WriteLine("Decimal value Converted: " + moneyConversion); //-34555.897

您使用的是 moneyConversiondecimal 值)而不是 moneyConversionString。如果将其更改为:

Console.WriteLine("Decimal value Converted: " + moneyConversionString);

您会得到您期望的格式。否则你只是在有效地调用 moneyConversion.ToString() 它将使用默认的 "G" 格式。


您正在打印小数的值(即 moneyConversion),而不是它的字符串表示形式(moneyConversionString)。