sql怎么实现6舍7入?

tshf198556 2011-02-11 05:08:32
我想这样 1.7及取2 1.6取1 就像四舍五入那样
...全文
216 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
DECLARE @NUM NUMERIC(19,6)
SELECT @NUM=15.77

SELECT @NUM,@NUM-@NUM%1+CASE WHEN @NUM%1-@NUM%0.1>0.6 THEN 1 ELSE 0 END
Linares 2011-02-11
  • 打赏
  • 举报
回复
declare @ decimal(5,1)

set @ = 1.7
select @, floor(@)+floor(@%1/0.7)

set @ = 1.6
select @, floor(@)+floor(@%1/0.7)
快溜 2011-02-11
  • 打赏
  • 举报
回复

declare @num float
set @num=15.77
select cast(@num as int)+cast((@num-cast(@num as int))*10/7 as int)
/*
--
16
guguda2008 2011-02-11
  • 打赏
  • 举报
回复
反正就是那么个意思,凑合着用行了
dawugui 2011-02-11
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 dawugui 的回复:]
round(数字-0.2,0)
[/Quote]
错了.

case when 数字 > 0 and 数字 - floor(数字) >= 0.7 then floor(数字) + 1
when 数字 > 0 and 数字 - floor(数字) < 0.7 then floor(数字)
end
AcHerat 元老 2011-02-11
  • 打赏
  • 举报
回复

--看你那个字段的精度,如果最大的是 4 位,那么
select round(字段-0.1112,0)
guguda2008 2011-02-11
  • 打赏
  • 举报
回复
DECLARE @NUM NUMERIC(19,6)
SELECT @NUM=15.77

SELECT @NUM,@NUM-@NUM%1+CASE WHEN @NUM%1-@NUM%0.1>0.6 THEN 1 ELSE 0 END
--15.770000 16.000000
yibey 2011-02-11
  • 打赏
  • 举报
回复
自己写个函数啦
lifusong890910 2011-02-11
  • 打赏
  • 举报
回复
自己写个存储过程啦
dawugui 2011-02-11
  • 打赏
  • 举报
回复
round(数字-0.2,0)

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧