KBell
KBell

Reputation: 511

Rounding half down a decimal

Does an equivalent of Java RoundingMode.HALF_DOWN exist in C#?

For example, I want to round 1.265 to 1.26, and 1.266 to 1.27.

If not, is there a simple way to do it?

Upvotes: 2

Views: 1140

Answers (3)

Adrian
Adrian

Reputation: 8597

Use the .Round method with the following constructor overload:

public static double Round (double value, int digits, MidpointRounding mode);

Calling like so:

Math.Round(value, 2, MidpointRounding.AwayFromZero);

Here's full documentation.

Upvotes: 1

Mad Dog Tannen
Mad Dog Tannen

Reputation: 7244

You can use Math.Round

    decimal d = Convert.ToDecimal("1.266");
    Console.WriteLine(Math.Round(d, 2));

    Console.ReadLine();

Upvotes: 0

Dmitrii Bychenko
Dmitrii Bychenko

Reputation: 186668

Have a look at Math.Round e.g.

  double[] tests = new double[] {
    1.265,
    1.266,
  };

  var demo = tests
    .Select(x => $"{x} -> {Math.Round(x, 2, MidpointRounding.AwayFromZero)}");

  var report = string.Join(Environment.NewLine, demo);

  Console.Write(report);

Outcome:

  1.265 -> 1.26
  1.266 -> 1.27

Upvotes: 5

Related Questions