첨부 실행 코드는 나눔고딕코딩 폰트를 사용합니다.
유용한 소스 코드가 있으면 icodebroker@naver.com으로 보내주시면 감사합니다.
블로그 자료는 자유롭게 사용하세요.

728x90
반응형

▶ Math 클래스 : 실수 올림/반올림/내림하기 예제

using System;

double value = 4.5343;

double result1 = Round(value, 4, RoundType.Ceiling );
double result2 = Round(value, 4, RoundType.Round   );
double result3 = Round(value, 4, RoundType.Truncate);

Console.WriteLine($"값     : {value  }");
Console.WriteLine($"올림   : {result1}");
Console.WriteLine($"반올림 : {result2}");
Console.WriteLine($"내림   : {result3}");

 

▶ Math 클래스 : 실수 올림/반올림/내림하기

using System;

/// <summary>
/// 반올림 타입
/// </summary>
public enum RoundType
{
    /// <summary>
    /// 올림
    /// </summary>
    Ceiling,

    /// <summary>
    /// 반올림
    /// </summary>
    Round,

    /// <summary>
    /// 내림
    /// </summary>
    Truncate
}

#region 반올림하기 - Round(value, roundDigit, rountType)

/// <summary>
/// 반올림하기
/// </summary>
/// <param name="value">값</param>
/// <param name="roundDigit">반올림 자리수</param>
/// <param name="rountType">반올림 타입</param>
/// <returns>반올림 결과</returns>
public double Round(double value, int roundDigit = 3, RoundType rountType = RoundType.Truncate)
{
    double temporaryValue = Math.Pow(10, roundDigit) / 10;

    double resultValue = Math.Truncate(value * temporaryValue) / temporaryValue;

    switch(rountType)
    {
        case RoundType.Ceiling  : resultValue = Math.Ceiling (value * temporaryValue) / temporaryValue; break;
        case RoundType.Round    : resultValue = Math.Round   (value * temporaryValue) / temporaryValue; break;
        case RoundType.Truncate : resultValue = Math.Truncate(value * temporaryValue) / temporaryValue; break;
    }

    return resultValue;
}

#endregion
728x90
반응형
Posted by 사용자 icodebroker
TAG , ,

댓글을 달아 주세요