Как сделать так, чтобы в моем выводе на записную строку отображалось числовое значение с точностью до 2 десятичных знаков? - PullRequest
1 голос
/ 19 сентября 2019

Мне просто нужно закончить эту программу для моего задания, и я выполнил задачу, которую хочу выполнить, но пока не могу понять, как заставить мои выходные данные отображать числовое значение с точностью до секунды.десятичный.(Например: 35.50)

Моя программа предназначена для получения среднего значения и выдачи среднего значения в десятичных числах.Это действительно так, но десятичная строка намного длиннее 2 десятичных знаков.Я надеюсь получить несколько советов о том, как это исправить, и, пожалуйста, дайте все ответы с объяснением.Спасибо вам большое!(Я использую программу Visual Studio 2017, и я создаю этот код в консольном приложении C #)

static void Main(string[] args)
    {

        decimal counter = 1;
        decimal sum = 0;
        decimal totalLoops = 3;


        while (counter <= totalLoops)
        {
            Console.WriteLine("Please enter test score here:");
            string scoreInput = Console.ReadLine();
            decimal score;
            decimal.TryParse(scoreInput, out score);
            sum += score;
            counter++;

        }

        Console.WriteLine("Your average is {0}", decimal.Round(sum, 2) / decimal.Round(totalLoops, 2));
        Console.ReadKey();

    }

}

Ответы [ 3 ]

2 голосов
/ 19 сентября 2019

{0:N2}, чтобы получить 2 десятичных знака в зависимости от вашей локали.(Стандартный способ)

{0:0.00}, чтобы всегда получать 2 десятичных знака, например: 2.00 будет показывать 2.00.

{0:0.##}, чтобы показать 2 десятичных знака, если они не равны нулю, например:2.00 покажет 2.

Пожалуйста, прочитайте их для справки:

0 голосов
/ 19 сентября 2019

Вы хотите, чтобы строка показывала десятичные дроби.

Кроме того, вы, вероятно, хотите округлить только результат среднего.

Console.WriteLine("Your average is {0:N2}", sum/totalLoops);
0 голосов
/ 19 сентября 2019

Вы можете использовать Math.Round

Console.WriteLine("Your average is {0}", Math.Round(decimal.Round(sum, 2) / decimal.Round(totalLoops, 2), 2, MidpointRounding.AwayFromZero));
...