2016-08-04 3 views
0

Я хочу разделить число запятыми. Я пробовал много способов сделать это. Но не получилось.Форматирование числа в C#

Его уже преобразовали в строку, и теперь я хочу отформатировать «tot».

GetData getData = new GetData(); 
string tot = Convert.ToString(getData.Total_Extra(month)); 
string totVal = (tot).ToString("N",new CultureInfo("en-US")); 
LB2.Text = tot.ToString(); 
+1

Каковы ваши фактические и ожидаемые результаты? –

+0

Я бы просмотрел https://msdn.microsoft.com/en-us/library/system.string.format(v=vs.110).aspx – elyashiv

+0

Я ожидаю, что значение на этикетке будет показано следующим образом: 19,950,000.00 – Mike

ответ

2

Вы можете конвертировать tot строки в числовое значение, а затем использовать string.Format, чтобы получить желаемый формат:

string tot = "19950000"; 
string output = string.Format("{0:n2}", Convert.ToInt32(tot)); 
Debug.WriteLine(output); //19,950,000.00 on my machine 

или альтернативно:

string output2 = Convert.ToInt32(tot).ToString("n2"); 

Они оба культуры конкретной, так может отображаться по-разному на разных компьютерах пользователей (в индийской культуре будет отображатьсяНапример,).

Если вы хотите силу трехзначный запятой группировки, то вы можете указать культуру использовать:

string output2 = Convert.ToInt32(tot).ToString("n2", CultureInfo.CreateSpecificCulture("en-GB")); 
//19,950,000.00 on any machine 

Это звучит как tot не может быть числовым значением, поэтому, прежде чем должны проверить это пытаясь отформатировать его:

string tot = "19950000"; 
int totInt; 
if (Int32.TryParse(tot, out totInt)) 
{ 
    string output = totInt.ToString("n2", CultureInfo.CreateSpecificCulture("en-GB")); 
    MessageBox.Show(output); 
} 
else 
{ 
    MessageBox.Show("tot could not be parsed to an Int32"); 
} 
+0

Извещение - tot - это строка. – elyashiv

+0

Это не работало – Mike

+0

Я тоже пробовал, но создает исключение. Я загрузил текущий код и, пожалуйста, взгляните. – Mike