2015-12-05 10 views
1

В консольном приложении Я создал 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 

Первая строка показывает десятичное представление, как ожидалось, в то время как secon d отпечатки -34555.897, но я ожидал -34,555.897, мне не хватает запятой, которая отделяет тысячи. Как так?

ответ

2

Это проблема:

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

Вы используете moneyConversion (значение decimal), а не moneyConversionString. Если вы измените его на:

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

вы получите то, что вы ожидаете. В противном случае вы просто эффективно вызываете moneyConversion.ToString(), который будет использовать формат по умолчанию «G».


+0

Умел читать имена переменных и не понимал, что они были .... OMG !!! потратил столько времени на это !! Мне стыдно. – Luther

1

Вы распечатав значение десятичной (т.е. moneyConversion), а не строковое представление о нем (moneyConversionString).

+0

Серьезно, иногда мне нужно отдохнуть. – Luther

 Смежные вопросы

  • Нет связанных вопросов^_^