>

여기서 double 형식의 87.6 숫자를 반올림한다고 가정합니다. 따라서 둥근 방식으로 C # 빌드를 적용하여 이와 같은 출력을 얻습니다.

 double test2 = 87.6;
  Console.WriteLine(Math.Round(test2, 0));

이것은 88을 생성 할 것입니다. 그러나 87로 반올림하고 싶었지만 논리는 0.5가 아니라 0.8입니다. 예를 들어 내 입력이 87.8이면 88을 얻고 싶습니다. 입력이 88.7이면 87로 반올림하고 싶습니다.

  • 답변 # 1

    코멘트 섹션에서 답을 얻었습니다. 여기에 대한 논리가 있습니다.

    double test2 = 87.6;
    test2 -= 0.3;
    Console.WriteLine(Math.Round(test2, 0));
    
    

    이 0.3은 차이를 만들 것입니다

  • 답변 # 2

    이것이 효과가 있다고 생각합니다 :

    public static class RoundingExtensions {
        public static int RoundWithBreak(this valueToRound, double breakValue = .5) {
           if (breakValue <= 0 || breakValue >= 1) { throw new Exception("Must be between 0 and 1") }
           var difference = breakValue - .5;
           var min = Math.Floor(breakValue);
           var toReturn = Math.Round(breakValue - difference, 0);
           return toReturn < min ? min : toReturn;
        }
    }
    
    

    소비 :

    var test = 8.7;
    var result = test.RoundWithBreak(.8);
    
    

  • 이전 서버에서 100+ 객체를로드하고 어댑터로 설정하는 동안 ANR을 피하는 방법;안드로이드에서
  • 다음 javascript - 'colspan'및 'rowspan'속성이있는 테이블 전치