解析后十进制不显示组(千)分隔符
Decimal not showing group(thousand) separator after parse
在控制台应用程序中,我创建了 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
您使用的是 moneyConversion
(decimal
值)而不是 moneyConversionString
。如果将其更改为:
Console.WriteLine("Decimal value Converted: " + moneyConversionString);
您会得到您期望的格式。否则你只是在有效地调用 moneyConversion.ToString()
它将使用默认的 "G" 格式。
您正在打印小数的值(即 moneyConversion
),而不是它的字符串表示形式(moneyConversionString
)。
在控制台应用程序中,我创建了 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
您使用的是 moneyConversion
(decimal
值)而不是 moneyConversionString
。如果将其更改为:
Console.WriteLine("Decimal value Converted: " + moneyConversionString);
您会得到您期望的格式。否则你只是在有效地调用 moneyConversion.ToString()
它将使用默认的 "G" 格式。
您正在打印小数的值(即 moneyConversion
),而不是它的字符串表示形式(moneyConversionString
)。