【叶子函数分享三十三】根据进舍位或四舍五入来求值
2011-03-20 16:04
567 查看
--原帖地址:
--http://blog.csdn.net/DengXingJie/archive/2011/02/25/6208613.aspx
/*
***************************************
Program ID: FUN_GetValueByRoundMode
Purpose : 根据进舍位或四舍五入来求值
Author : Jesse
Date : 2011.02.14
***************************************
*/
go
--创建函数
Create function dbo.FUN_GetValueByRoundMode
(
@Value decimal(18,6), --需进行运算的值
@Bit int, --小数位数
@RoundMode char(1)) --求值方式:-四舍五入、-舍去、-进位
Returns decimal(18,6)
As
begin
declare @Result decimal(18,6)
set @Value=isnull(@Value,0)
if @RoundMode='1' --舍去
Select @Result=Round(@Value,@Bit,1)
else if @RoundMode='2' --进位
Begin
if @Value>Round(@Value,@Bit,1) --确保在有尾数的情况下才进位
Select @Result=Round(@Value,@Bit,1)+1.0/Power(10,@Bit)
else
Select @Result=Round(@Value,@Bit,1)
end
else
Select @Result=Round(@Value,@Bit)
Return Isnull(@Result,0)
end
--测试示例
select dbo.FUN_GetValueByRoundMode(9.82458,3,'0')
select dbo.FUN_GetValueByRoundMode(9.82458,3,'1')
select dbo.FUN_GetValueByRoundMode(9.82458,3,'2')
--运行结果
/*
9.825000
9.824000
9.825000
*/
--http://blog.csdn.net/DengXingJie/archive/2011/02/25/6208613.aspx
/*
***************************************
Program ID: FUN_GetValueByRoundMode
Purpose : 根据进舍位或四舍五入来求值
Author : Jesse
Date : 2011.02.14
***************************************
*/
go
--创建函数
Create function dbo.FUN_GetValueByRoundMode
(
@Value decimal(18,6), --需进行运算的值
@Bit int, --小数位数
@RoundMode char(1)) --求值方式:-四舍五入、-舍去、-进位
Returns decimal(18,6)
As
begin
declare @Result decimal(18,6)
set @Value=isnull(@Value,0)
if @RoundMode='1' --舍去
Select @Result=Round(@Value,@Bit,1)
else if @RoundMode='2' --进位
Begin
if @Value>Round(@Value,@Bit,1) --确保在有尾数的情况下才进位
Select @Result=Round(@Value,@Bit,1)+1.0/Power(10,@Bit)
else
Select @Result=Round(@Value,@Bit,1)
end
else
Select @Result=Round(@Value,@Bit)
Return Isnull(@Result,0)
end
--测试示例
select dbo.FUN_GetValueByRoundMode(9.82458,3,'0')
select dbo.FUN_GetValueByRoundMode(9.82458,3,'1')
select dbo.FUN_GetValueByRoundMode(9.82458,3,'2')
--运行结果
/*
9.825000
9.824000
9.825000
*/
相关文章推荐
- 【叶子函数分享二十四】根据年月生成日历函数
- 【叶子函数分享四十八】根据年得到所有星期日的日期
- 【叶子函数分享九】根据字符分割字符串的三种写法
- 【叶子函数分享二十七】根据日期得到星期的函数
- 根据进舍位或四舍五入来求值
- 【叶子函数分享二十二】根据日期返回星座
- 【叶子函数分享二十四】根据年月生成日历函数
- 【叶子函数分享九】根据字符分割字符串的三种写法
- 【叶子函数分享二十七】根据日期得到星期的函数
- 【叶子函数分享四十八】根据年得到所有星期日的日期
- 【叶子函数分享二十七】根据日期得到星期的函数
- 【叶子函数分享二十八】根据年度判断是否是闰年
- 【叶子函数分享二十八】根据年度判断是否是闰年
- [MSSQL]【叶子函数分享二十八】根据年度判断是否是闰年
- [MSSQL]【叶子函数分享二十八】根据年度判断是否是闰年
- 【叶子函数分享十二】根据身份证得到生日函数
- 【叶子函数分享三十九】根据年月得到当月的天数
- 【叶子函数分享十二】根据身份证得到生日函数
- 【叶子函数分享十三】根据身份证计算性别函数
- 【叶子函数分享十三】根据身份证计算性别函数