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

回到顶部