Reputation: 511
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
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);
Upvotes: 1
Reputation: 7244
You can use Math.Round
decimal d = Convert.ToDecimal("1.266");
Console.WriteLine(Math.Round(d, 2));
Console.ReadLine();
Upvotes: 0
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