在控制台应用程序中,我创建了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”格式。

关于c# - 解析后小数未显示group(千)分隔符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34112125/

10-13 02:00