Why does Math.Round(2.5) return 2 instead of 3?

前端 未结 15 1778
灰色年华
灰色年华 2020-11-22 03:54

In C#, the result of Math.Round(2.5) is 2.

It is supposed to be 3, isn\'t it? Why is it 2 instead in C#?

15条回答
  •  名媛妹妹
    2020-11-22 04:16

    This is ugly as all hell, but always produces correct arithmetic rounding.

    public double ArithRound(double number,int places){
    
      string numberFormat = "###.";
    
      numberFormat = numberFormat.PadRight(numberFormat.Length + places, '#');
    
      return double.Parse(number.ToString(numberFormat));
    
    }
    

提交回复
热议问题