以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]SQL 表达式计算列的四舍五入  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=122908)

--  作者:zpvol1213
--  发布时间:2018/8/4 10:29:00
--  [求助]SQL 表达式计算列的四舍五入
在数据表中,可以使用 (Convert([单价]*[金额], \'System.Int32\')*100)/100 达到只保留两位小数
在SQL查询语句中,怎样才能实现这样的功能?
这是为了保证两个数据的一致


--  作者:有点蓝
--  发布时间:2018/8/4 10:43:00
--  
数据库使用round



--  作者:zpvol1213
--  发布时间:2018/8/4 13:06:00
--  [求助]
数据表的表达式列 
用表达式
Convert([数量]*[单价]*10, “System.Int32")/10  
可以 四舍五入,保留一位小数
如 3.589 -> 3.6

我要实现截断的效果:
3.589 -> 3.5
CInt([数量]*[单价]*10)/10, 不支持
Floor([数量]*[单价]*10)/10,不支持

用什么方式呢?


[此贴子已经被作者于2018/8/4 13:10:26编辑过]

--  作者:有点蓝
--  发布时间:2018/8/4 13:56:00
--  
Convert(\'System.Int64\', [数量]*[单价]*10 - 0.04999999) / 10
--  作者:zpvol1213
--  发布时间:2018/8/4 18:57:00
--  
谢谢!

截断,保留1位小数为
Convert([数量]*[单价]*10 - 0.4999999, \'System.Int64\') / 10