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 に丸められます。これは、2 に丸められる .NET Framework とは対照的です。

LINQ to SQL は、SQL の ROUND セマンティクスに到達するため、銀行型丸めを実装しようとしません。

関連項目