Как округлить с точностью до тысячных с помощью C# - PullRequest
1 голос
/ 27 апреля 2020

Я начинающий, когда дело доходит до кодирования, и я строю калькулятор среднего уровня в качестве одной из моих первых программ.

Console.WriteLine("Your batting average is: " + (hits / atBats) );

Ввод для обращений составляет 165 и 419 для atBats, и он рассчитывается до .3937947494. Хотя это правильно, я хотел бы, чтобы число читалось как .394. Как бы я это сделал?

Ответы [ 3 ]

1 голос
/ 27 апреля 2020

Пример примера, демонстрирующий использование функции Math.Round ():

using System;

class MainClass {
public static void Main (string[] args) {
    double result =  0.3937947494;

    Console.WriteLine(Math.Round(result,3));
 }
}

// here result is = 0.3937947494, but you will get output as 0.394 in the console.

VERSION 2 :

using System;

public class Program
{
    public static void Main()
    {
        int hits = 165;
        int atBats = 419;
        double result = (double)hits / (double)atBats;
        Console.WriteLine("Your batting average is: " +Math.Round(result,3));
    }
}
// this produces the same result
// Your batting average is: 0.394 

Снимок экрана для второй альтернативы:

enter image description here

ВЕРСИЯ 3: Обеспечивает лучшую читаемость (как правильно указано @ Manti_Core

using System;

public class Program
{
    public static void Main()
    {
        double hits = 165;
        double atBats = 419;
        double result = hits/atBats;
        Console.WriteLine("Your batting average is: " + (hits / atBats).ToString("0.000"));
    }
} 

enter image description here

Надеюсь, это поможет.

0 голосов
/ 27 апреля 2020

Вы можете сделать просто, как показано ниже:

double hits = 165;
double atBats = 419;
Console.WriteLine("Your batting average is: " + (hits / atBats).ToString("#.000"));
Console.Read();

здесь вы просто форматируете значение, которое хотите отобразить.

Производительность формата строки по сравнению со значениями в боксе:

Формат строки String format performance

Бокс значения enter image description here

0 голосов
/ 27 апреля 2020

Вы можете использовать string.Format:

var number = 0.3937947494;            
Console.WriteLine(string.Format("{0:0.000}", number));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...