Поделиться через


Методы System.Math

LINQ to SQL не поддерживает следующие Math методы.

Отличия от платформы .NET

Семантики округления в .NET Framework отличаются от подобных семантик SQL Server. Метод Round в платформа .NET Framework выполняет округление банкира, где числа, заканчивающиеся в 5-м раунде до ближайшей даже цифры, а не на следующую более высокую цифру. Например, число 2,5 округляется до 2, а 3,5 - до 4. (Это помогает избежать систематического смещения в сторону более высоких значений в транзакциях данных.)

В SQL, наоборот, функция ROUND всегда округляет от нуля. Поэтому число 2,5 округляется до 3, тогда как в платформе .NET Framework - до 2.

LINQ to SQL проходит через семантику SQL ROUND и не пытается реализовать округление банкира.

См. также