Novaa Ответов: 2

Как добавить символ процента(%)


Привет Друзьях,
Я хочу добавить символ % в качестве суффикса в процентное значение столбца в datatable в коде C#.

Что я уже пробовал:

Я уже пробовал с этим:

оператор foreach (datarow объект дроу в ДТ.Строк)
{
drow["PER"] = строка.Конкат(дроу.Поле<decimal>("PER"), "%");
}

Здесь мой столбец PER был в десятичном значении . Я не могу связать значения. Кто-нибудь, пожалуйста, помогите решить эту проблему.

заранее спасибо.

2 Ответов

Рейтинг:
2

Maciej Los

Вы не можете просто добавить [%] сразу после номера. Один PER столбец имеет числовой тип (вероятно, десятичный), поэтому он не может хранить текст!

Чтобы решить эту проблему, вы можете добавить вычисляемый столбец/выражение[^]. Видеть:

DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn("PER", typeof(decimal)));
dt.Rows.Add(new object[]{0.85});
dt.Rows.Add(new object[]{0.99});
dt.Rows.Add(new object[]{0.67});
dt.Rows.Add(new object[]{0.46});
dt.Rows.Add(new object[]{0.27});

DataColumn dc = new DataColumn("PER2", typeof(string));
dc.Expression = "(PER*100) + '%'";
dt.Columns.Add(dc);


Результат:
PER  PER2
0,85 85,00% 
0,99 99,00% 
0,67 67,00% 
0,46 46,00% 
0,27 27,00%


Для получения более подробной информации, пожалуйста, смотрите: объект DataColumn.Свойство Выражения (System.Data)[^]


Рейтинг:
15

OriginalGriff

Не пытайтесь изменить свой DataTable - это плохая идея, так как он может быть связан с источником данных. А добавление "%" к источнику означало бы изменение его с числового значения на строку, что было бы очень плохой идеей!

Вместо этого посмотрите на форматирование данных, когда вы представляете их пользователю - DataGridView и тому подобное все имеют параметры форматирования, которые позволят вам отобразить требуемый знак процента. Я не могу сказать вам, что делать - я понятия не имею, с чем вы используете DataTable или даже среду, в которой вы представляете данные, - но документация MSDN должна помочь, если вы загуглите имя элемента управления и "форматирование".