Округление до 1 десятичного знака в C#
Я хотел бы округлить свой ответ на 1 десятичное число. например: 6.7, 7.3 и т. д. Но когда я использую математику.круглый, ответ всегда приходит без десятичных знаков. Например: 6, 7
вот код, который я использую:
int [] nbOfNumber = new int[ratingListBox.Items.Count];
int sumInt = 0;
double averagesDoubles;
for (int g = 0; g < nbOfNumber.Length; g++)
{
nbOfNumber[g] = int.Parse(ratingListBox.Items[g].Text);
}
for (int h = 0; h < nbOfNumber.Length; h++)
{
sumInt += nbOfNumber[h];
}
averagesDoubles = (sumInt / ratingListBox.Items.Count);
averagesDoubles = Math.Round(averagesDoubles, 2);
averageRatingTextBox.Text = averagesDoubles.ToString();
3 ответов
вы делите на int
, это Виль дать int
как результат. (что составляет 13 / 7 = 1)
попробуйте сначала бросить его в плавающую точку:
averagesDoubles = (sumInt / (double)ratingListBox.Items.Count);
на averagesDoubles = Math.Round(averagesDoubles, 2);
отвечает за округление двойного значения. Он будет круглый,5.976
to 5.98
, но это не влияет на представление значения.
на ToString()
отвечает за представление десятичных знаков.
попробуй :
averagesDoubles.ToString("0.0");
проверим, что averagesDoubles
является либо двойным, либо десятичным в соответствии с определением математика.Раунд и объединить эти две строки:
averagesDoubles = (sumInt / ratingListBox.Items.Count);
averagesDoubles = Math.Round(averagesDoubles, 2);
В :
averagesDoubles = Math.Round((sumInt / ratingListBox.Items.Count),2);
2 в приведенном выше случае представляет количество десятичных знаков, которые вы хотите округлить до. Проверьте ссылку выше для получения дополнительной информации.
int division всегда будет игнорировать дробь
(sumInt / ratingListBox.Items.Count);
здесь sunint-это int и ratingListBox.Предметы.Coun также int, поэтому divison никогда не приводит к фракции
чтобы получить значение во фракции, вам нужно datatype как float и введите cast sumInt и count для float и double, а затем используйте divison