首页 新闻 会员 周边 捐助

linq当中这样为什么没有用?

0
悬赏园豆:50 [已解决问题] 解决于 2020-07-10 16:54

 VAT = Math.Round(s.Vat ?? 0.00m, 2).ToString(),

得出来的还是四位小数

你猜丶的主页 你猜丶 | 初学一级 | 园豆:135
提问于:2020-04-26 18:04
< >
分享
最佳答案
0
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")

收获园豆:50
jzblive | 菜鸟二级 |园豆:428 | 2020-04-26 20:13
其他回答(2)
0

不是必要的话,从数据库差数据时,查原始数据,
到内存中后再select一次

吴瑞祥 | 园豆:29449 (高人七级) | 2020-04-27 13:02
0

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")

早安心语晚安心语 | 园豆:202 (菜鸟二级) | 2020-07-10 21:17
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册