재우니의 블로그

 

 C# 에서 사용할 수 있는 확장 메서드(extension method)로, Truncate 라고 명칭을 만들었습니다.

아래 확장메서드는 double 타입의 값을 주어진 소수 자릿수(precision)로 절삭하여 반환합니다.

 

using System;
using System.Globalization;
using System.Security.Cryptography;
using System.Text.RegularExpressions;

namespace Codout.Framework.Common.Extensions
{
    /// <summary>
    /// Extensões comuns para tipos relacionadas a números.
    /// </summary>
    public static class Numeric
    {
        public static double Truncate(this double value, int precision)
        {
            var step = Math.Pow(10, precision);
            var tmp = Math.Truncate(step * value);
            return tmp / step;
        }
    }
}

//사용법
double value = 3.14859265359;
double result = value.Truncate(2);
Console.WriteLine(result);  // 출력 결과: 3.14

 

 

C# 에서는 Math.Round 함수를 제공하지만, 이는 절삭기능이 없고 반올림 해서 결과값을 제공합니다.

Math.Round 함수는 첫 번째 인수로 반올림할 값, 두 번째 인수로 반올림할 소수 자릿수를 받습니다. 

이를 통해 소수 자릿수를 조절할 수 있습니다.

double value = 3.14859265359;
double result = Math.Round(value, 2);
Console.WriteLine(result);  // 출력 결과: 3.15

 

참고 사이트 

 

https://github.com/shimpark/Codout.Framework/blob/master/Codout.Framework.Common/Extensions/Strings.cs