文档章节

sql的四舍六入五成双的函数 (1)

小菜鸟要起飞
 小菜鸟要起飞
发布于 2015/04/03 10:27
字数 231
阅读 50
收藏 0
--drop function MyRound
create   function   MyRound(@num   numeric(20,10),@i   int) 
--@i保留的小数位 
--@num传入的数据 
returns   varchar(20) 
as 
begin 
declare   @numtemp   numeric(20,10)
declare   @result   varchar(20) 
set   @numtemp=abs(@num)*power(10,@i+1) 
select   @numtemp=(case   when   floor(@numtemp)-floor(@numtemp/10)*10=5 
                                            then   (case   when   @numtemp-floor(@numtemp)=0 
                                                                  then   (case   when   cast(floor(@numtemp/10)   as   int)%2=0 
                                                                                        then   floor(@numtemp/10)/power(10,@i) --有效数字后一位为5,前一位为偶,后面没有非零
                                                                                        else   round(@numtemp/power(10,@i+1),@i)-- 有效数字后一位为5,前一位为奇,后面没有非零
                                                                                          end) 
                                                                  else   round(@numtemp/power(10,@i+1),@i) --有效数字后一位为5,后面有非零数值
                                                                  end) 
                                              else   round(@numtemp/power(10,@i+1),@i) --有效数字后一位不是5
                                              end) 
set   @result=(case   when   @num> 0   then   str(@numtemp,20,@i)   else   str(0-@numtemp,20,@i)   end) 
return   @result 
end

© 著作权归作者所有

共有 人打赏支持
小菜鸟要起飞
粉丝 0
博文 31
码字总数 8551
作品 0
海淀
程序员
私信 提问
2007北京市小学生程序设计友谊赛详细答案

第1题 解法一:在cmath或math.h中,有个round()函数,可以实现四舍五入。 注意:网络上有些人说round()不是四舍五入,而是四舍六入五成双,即round(5.5) = 6, round(6.5) = 6。 我通过在Dev...

海天一树X
2018/12/19
0
0
个人对于JavaScript中Number.toFixed()方法的理解

需求:对浮点数进行四舍五入精度获取。 问题:直接使用会出现异常的舍入情况。 原因:计算机浮点数存储是二进制,的实际的精度确认规则是四舍六入五成双,逢四下舍,逢六入一,逢五时,根据浏...

peakedness丶
2018/10/26
0
0
RoundTo 及其相关的一些内容总结

1.Round(四舍六入五留双) 功能说明:对一个实数进行四舍五入。(按照银行家算法) 例: var i, j: Integer; begin i := Round(1.5); // i等于2 j := Round(2.5); // j等于2 end; 在Delphi中使...

geek_loser
2014/07/22
0
0
delphi的函数round、trunc、ceil、floor 和RoundTo

1.Round(四舍六入五留双) 功能说明:对一个实数进行四舍五入。(按照银行家算法) 例: var i, j: Integer; begin i := Round(1.5); // i等于2 j := Round(2.5); // j等于2 end; 在Delphi中使...

dillonxiao
2018/05/14
0
0
java保留小数点后四舍五入的问题

在Java中使用一些方法进行四舍五入会出现和预期不同的结果,这是因为这些方法使用的原则实际为:四舍六入五考虑,五后非零就进一,五后皆零看奇偶,五前为偶应舍去,五前为奇要进一。 1.四舍...

塞上名猪
2017/10/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

js算法总结

数列求和 等差数列求和 function sum(a0,d,n){//a0->首项,d->公差,n->项数//(首项+末项)*项数/2return (a1+(a1+d*n))*n/2;} 等比数列求和 function sum(a0,q,n){//a0->首项,q->公......

祖达
31分钟前
1
0
小白?转型?毕业生?外行学习快速入行大数据开发指南

这篇文章中,本文将针对三种不同的、想要进入数据科学领域的人群,给出自己的经验,帮助他们迅速有效入行。 虽然没有适合每个人的万能解决方案,但这三类建议值得想转行的你一看。 第1类:新...

董黎明
38分钟前
0
0
好文 | MySQL 索引B+树原理,以及建索引的几大原则

MySQL事实上使用不同的存储引擎也是有很大区别的,下面猿友们可以了解一下。 一、存储引擎的比较 注:上面提到的B树索引并没有指出是B-Tree和B+Tree索引,但是B-树和B+树的定义是有区别的。 ...

Java爬坑之路
42分钟前
1
0
mysql group by 和 Order By 执行顺序

1.在写统计的时候,我们会用到统计首单,这样里面设计到排序。写子查询的方式当然可以实现, 但是我们有时候,需要创建视图,视图不支持带子查询的。 加了排序后会返回,排序后的哪个第一条数...

kuchawyz
46分钟前
2
0
Spring Boot 2.X 如何添加拦截器?

最近使用SpringBoot2.X搭建了一个项目,大部分接口都需要做登录校验,所以打算使用注解+拦截器来实现,在此记录下实现过程。 一、实现原理 1. 自定义一个注解@NeedLogin,如果接口需要进行登...

花漾年华
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部