在控制台应用程序中,我创建了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 ,我错过了将数千个分开的逗号。怎么样?
答案 0 :(得分:2)
这是问题所在:
Console.WriteLine("Decimal value Converted: " + moneyConversion); //-34555.897
您正在使用moneyConversion
(decimal
值)而不是moneyConversionString
。如果您将其更改为:
Console.WriteLine("Decimal value Converted: " + moneyConversionString);
您将获得您期望的格式。否则,您只是有效地呼叫moneyConversion.ToString()
,这将使用默认的" G"格式。
答案 1 :(得分:1)
您正在打印小数值(即moneyConversion
),而不是它的字符串表示形式(moneyConversionString
)。