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")
不是必要的话,从数据库差数据时,查原始数据,
到内存中后再select一次
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中这种转换难以实现。
yipinjuzi.com
你可以 尝试一下 .ToString("F2")