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 舍入为 3,相比之下,它在 .NET Framework 中则舍入为 2。

LINQ to SQL 遵照 SQL ROUND 语义,因而不会尝试执行“四舍六入五成双”。

请参阅