C # округлить два десятичных знака в C #? - PullRequest
0 голосов
/ 07 марта 2019

У меня есть десятичные числа. Я хочу округлить их в двух местах:

Original Value : 6.3619 
What I want    : 6.37

Original Value : 5.12003
What I want    : 5.13

Я пытался Math.Celing, Math.Round. Но эти методы не дают мне желаемых значений.

Я не хочу усекать десятичное значение.

Ответы [ 4 ]

3 голосов
/ 07 марта 2019

Попробуйте Потолок Метод:

  1. Масштаб value up : 6.3619 -> 636.19
  2. Усечение с помощью Math.Ceiling: 636.19 -> 637
  3. Наконец, масштаб результат вниз : 637 -> 6.37

Код:

 var result = Math.Ceiling(value * 100.0) / 100.0;

Демо:

double[] tests = new double[] {
  6.3619,
  5.12003,
};

string report = string.Join(Environment.NewLine, tests
  .Select(test => $"{test,10} -> {Math.Ceiling(test * 100) / 100.0}"));

Console.Write(report);

Результат:

  6.3619 -> 6.37
 5.12003 -> 5.13
0 голосов
/ 07 марта 2019

Попробуйте использовать это

private double RoundValueUp(double value, int NbDecimals)
{
    double multiplier = Math.Pow(10, Convert.ToDouble(NbDecimals));
    return Math.Ceiling(value * multiplier) / multiplier;
}

Таким образом, вы можете использовать его следующим образом RoundValueUp(6.3619, 2); В отношении LINK

0 голосов
/ 07 марта 2019

Вы должны попробовать это.

 var answer = Math.Ceiling(yourvalue * 100) / 100;

Пожалуйста, отметьте это как ответ, если это поможет.

0 голосов
/ 07 марта 2019

Этот вопрос уже решен: /7351493/okruglenie-do-2-znakov-posle-zapyatoi-v-c

Надеюсь, это то, что вы искали

...