System.Math 메서드

LINQ to SQL은 다음 Math 메서드를 지원하지 않습니다.

.NET과의 차이점

.NET Framework의 반올림 구문은 SQL Server와 다릅니다. .NET Framework의 Round 메서드는 은행원 반올림을 수행합니다. 은행원의 반올림에서는 .5로 끝나는 숫자는 다음 높은 자리수로 반올림되는 것이 아니라 가장 가까운 짝수 정수가 됩니다. 예를 들어 2.5는 2가 되고 3.5는 4가 됩니다. 이 방법은 많은 데이터 트랜잭션에서 값이 높아질수록 발생할 수 있는 체계적 오차를 방지할 수 있습니다.

SQL에서 ROUND 함수는 항상 0 이상의 정수 값으로 반올림됩니다. 따라서 2.5의 경우 .NET Framework에서는 2가 되는데 반해 SQL에서는 3이 됩니다.

LINQ to SQL은 SQL ROUND 의미 체계를 거치며 은행원 반올림을 구현하려고 하지 않습니다.

참고 항목