sqlserver varchar 对于 sum 运算符无效_在sqlserver上实现自定义函数四舍六入五成双...
做过统计都知道关于保留几位小数有好几种方法,其中4舍6入5凑偶用的比较多,所以我就是sqlserver里面实现了一个自定义函数
定义
对于位数很多的近似数,当位数确定后,其后面多余的数字应该舍去,只保留有效数字最末一位,这种修约(舍入)规则是“四舍六入五成双”,也即“4舍6入5凑偶”,这里“四”是指≤4 时舍去,"六"是指≥6时进上,"五"指的是根据5后面的数字来定,当5后有数时,舍5入1;当5后无有效数字时,需要分两种情况来讲:
(1)5前为奇数,舍5入1;
(2)5前为偶数,舍5不进(0是偶数)。
具体规则
(1)被修约的数字小于5时,该数字舍去;
(2)被修约的数字大于5时,则进位;
(3)被修约的数字等于5时,要看5前面的数字,若是奇数则进位,若是偶数则将5舍掉,即修约后末尾数字都成为偶数;若5的后面还有不为“0”的任何数,则此时无论5的前面是奇数还是偶数,均应进位。
函数
if object_id('fnRound') is not nulldrop function fnRoundGOcreate function fnRound(@num float,@i int)returns varchar(20)asbegindeclare @str varchar(20) /*转换成字符类型*/declare @str2 varchar(20) /*小数位数后面的字符串*/declare @str3 varchar(2) /*小数位数字符串*/set @str = convert(varchar,@num)if (charindex('.',reverse(@str)) <= 0)beginif @i > 0beginset @str = @str + '.'while @i > 0beginset @str = @str + '0'set @i = @i - 1endendreturn @strendset @str2 = reverse(substring(reverse(@str),1,charindex('.',reverse(@str)) - 1 - @i))set @str3 = substring(@str,charindex('.',@str) + 1,@i)if @str2%5 = 0 and @str3%2 = 0 /*如果符合"五成双"*/set @str = substring(@str,1,charindex('.',@str) + @i)else /*否则四舍五入*/set @str = convert(varchar,round(@num,@i))RETURN @strendGO
sqlserver varchar 对于 sum 运算符无效_在sqlserver上实现自定义函数四舍六入五成双...相关推荐
- mysql 五舍六入_四舍六入五成双(适用于MYSQL)(最大支持小数点第9位)
ZRound CREATE FUNCTION ZRound(num DECIMAL(38,14) ,i INT) RETURNS varchar(20) BEGIN /*原数据转换成字符类型*/ DE ...
- python 人数取整_避免PYTHON取整四舍六入五成双问题
python中关于round函数的小坑 - _小苹果 - 博客园www.cnblogs.com 同样的坑:整数a/100 不等于a×0.01 在python2.7的doc中,round()的最后写着 ...
- c语言整形除法是五舍六入吗,四舍六入五成双 - C/C++论坛 - 51CTO技术论坛_中国领先的IT技术社区...
复制内容到剪贴板 代码:#include using namespace std; #define FLENGTH 1000; //宏定义保留3位小数 double fun(double ...
- java 四舍六入五成双_【数据小常识】“四舍六入五成双”
"四舍六入五成双"规则如下: "四舍六入五成双",也即"4舍6入5凑偶",这里"四"是指≤4 时舍去,"六&q ...
- java 四舍六入五成双_显示格式的四舍六入五成双
一.问题描述 在使用快逸复杂报表设计" target="_blank" class="quieeLink1">设计器时,若单元格内的信息为数值, ...
- unity笔记_四舍六入五成双
float Round(float num, int length)//0.58{string str = num.ToString();//传入整数,没有小数点if (!str.Contains(& ...
- python自定义函数返回值_第八讲 python自定义函数返回值
注意自定义函数:统一文件内函数名称不能相同. 单返回值 语法结构: def function_name([para1,para2...]): code... code... ... return va ...
- 操作数数据类型 char 对于 sum 运算符无效。_数据类型和运算符
数据类型和运算符 1.进制 1.1文件存储单位 任何数据在计算机中都是以二进制的形式存在的,二进制早期由电信号开关演变而来 . 一个电信号或者一个二进制位统称为Bit位,8个Bit位为一组组成 ...
- mysql ifnull 无效_关于MySql中使用IFNULL()函数失效的问题。
今天在学习时,碰到一个问题:在联表查询取得结果后,如果取得的结果是空值,则给一个默认值,如果不是空值,则返回这个值. 下面我们来看看业务场景: 在menu表中: 存储的是前端页面的菜单配置,注意成员权 ...
最新文章
- python标准输入输出用来干什么_python 以标准输出(sys.stdout)为例,看python的标准输入、标准错误输出...
- 草稿 9206需抄写 1129
- Pandas 文本数据方法 replace( )
- 8.19 NOIP模拟测试26(B) 嚎叫响彻在贪婪的厂房+主仆见证了 Hobo 的离别+征途堆积出友情的永恒...
- 【实践】腾讯PCG数据中台DEVOPS和AIOPS实践.pdf(附下载链接)
- 13、XSI,信号量简介
- sci的figure怎么做_一文看懂SCI论文中都有哪几种Figure
- SIPP对接fs压力测试
- mysql查询条件忽略大小写_mysql 查询条件不区分大小写问题
- 整车控制器(VCU)策略及开发流程
- codeforces 1328 B. K-th Beautiful String
- 【Python人工智能】Python全栈体系(二十)
- KVM 多电脑切换器(KVM Switch)
- 关于ORACLE (AMERICAN_AMERICA.US7ASCII)字符集
- 处理各种压力(情绪、家庭)时,需要注意什么!
- 计算机设备选型的基本原则,设备选型的概念和选型依据
- 机器学习岗位的面试准备——总结1
- 天龙八部TLBB系列 - 网单服务端Public/Data目录文件说明
- 三十六、黄眉童儿的真实身份
- 关于sql server导出csv格式文件的身份证号乱码问题处理办法