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

时间:2015-12-05 23:22:46

标签: c# decimal globalization cultureinfo culture

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

  1. 使用字面值
  2. 使用字符串解析
  3. 我将我的文化设置为“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 ,我错过了将数千个分开的逗号。怎么样?

2 个答案:

答案 0 :(得分:2)

这是问题所在:

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

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

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

您将获得您期望的格式。否则,您只是有效地呼叫moneyConversion.ToString(),这将使用默认的" G"格式。

答案 1 :(得分:1)

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