linq当中这样为什么没有用?
VAT = Math.Round(s.Vat ?? 0.00m, 2).ToString(),
得出来的还是四位小数
回答
select ROUND( ISNULL( s.Vat, 0), 2) AS VAT
from TABLE1 where ... ...
ISNULL
, ROUND
是不会改变数据精度的,decimal(18, 4) 转换后还是 decimal(18, 4) 。
如果你想转换成 decimal(18, 2) 需要强制转换 Cast( ROUND( ISNULL( s.Vat, 0), 2) AS decimal( 18, 2) AS VAT
。在EF中这种转换难以实现。
你可以 尝试一下 .ToString("F2")
以上是 linq当中这样为什么没有用? 的全部内容, 来源链接: utcz.com/a/31282.html