LSB71 Ответов: 2

C # windows form округление вычислений


У меня есть формула ниже, чтобы вычислить столбец из datagridview.
Как округлить с помощью математики.Раунд (вал, 2)

int i;
int NbLig = DGV_P9_Commande.Rows.Count;
Double Val = 0;
for (i = 0; i < NbLig; i++)
{
    Val += Convert.ToDouble(DGV_P9_Commande.Rows[i].Cells[5].Value);

}

Txt_total_P9_cmd.Text = Convert.ToString(Val) + "  €uros H.T";


Мой результат не работает ....

спасибо

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

Txt_total_P9_cmd.Текст = Математика.Круглый((Конверт.ToString(Val)), 2) + " €uros H. T";

ZurdoDev

Как это не работает?

OriginalGriff

"Это не работает" - одно из самых бесполезных описаний проблемы, которое мы получаем: оно абсолютно ничего не говорит нам о проблеме. Мы не знаем, получаете ли вы сообщение об ошибке, или неправильные данные, или даже что этот код успешно компилируется!
Помните, что мы не можем видеть ваш экран, получить доступ к вашему жесткому диску или прочитать ваши мысли - мы получаем только то, что вы печатаете для работы.
Итак, расскажите нам, что происходит, когда вы запускаете этот код, что вы ожидали, как вы проверили, что произошло. Помогите нам помочь вам!
Используйте виджет "улучшить вопрос", чтобы отредактировать свой вопрос и предоставить более подробную информацию.

Richard Deeming

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

Вы не можете округлить строку, вы можете только округлить число.

Вам нужно округлить значение, прежде чем преобразовать его в строку. Ответ Фила показывает вам, как это сделать.

2 Ответов

Рейтинг:
19

phil.o

Txt_total_P9_cmd.Text = string.Format
(
   "{0} €uros H.T.",
   Math.Round(Val, 2)
); 

Edit: если речь идет только о отображении двух десятичных цифр, то:
Txt_total_P9_cmd.Text = string.Format
(
   "{0} €uros H.T.",
   Val.ToString("D2")
); 
более подходящий.


LSB71

Извините, но я не получаю желаемого результата.
Ответ от (Фил.О) дает мне это, например.
Txt_total_P9_cmd.Текстовая строка.Формат ("{0} €uros H. T.", матем.Раунд(Вал, 2)); = 1254,8
Я хотел бы получить две цифры после десятичной точки, как это (1254.80)
и вот так :
Txt_total_P9_cmd.Текст = Математика.Раунд(Конвертация.ToString(Val), 2) + " €uros H. T";
У меня есть следующая ошибка (невозможное преобразование из строки в дубликат)

phil.o

Пожалуйста, смотрите мой обновленный ответ.

Рейтинг:
1

LSB71

Thank you,
I changed the format like this : string.Format("{0:0.00}
And I get my result well.
<pre lang="c#">
Txt_total_P9_cmd.Text = string.Format("{0:0.00} Euros H.T.", Math.Round(Val, 2));

Спасибо тебе, Фил.