Rounding half down a decimal

后端 未结 3 1151
借酒劲吻你
借酒劲吻你 2021-01-25 07:52

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

相关标签:
3条回答
  • 2021-01-25 08:41

    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
    
    0 讨论(0)
  • 2021-01-25 08:46

    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.

    0 讨论(0)
  • 2021-01-25 08:49

    You can use Math.Round

        decimal d = Convert.ToDecimal("1.266");
        Console.WriteLine(Math.Round(d, 2));
    
        Console.ReadLine();
    
    0 讨论(0)
提交回复
热议问题