Pau*_*aul 20 sql t-sql sql-server rounding significant-digits
我希望能够在SQL中将数字舍入为n个有效数字.所以:
123.456 rounded to 2sf would give 120
0.00123 rounded to 2sf would give 0.0012
Run Code Online (Sandbox Code Playgroud)
我知道ROUND()函数,它舍入到n个小数位而不是有效数字.
Bra*_*ann 20
select round(@number,@sf-1- floor(log10(abs(@number)))) 应该做的伎俩!
在您的两个示例上成功测试.
编辑:在@ number = 0上调用此函数将不起作用.在使用此代码之前,您应该为此添加测试.
create function sfround(@number float, @sf int) returns float as
begin
declare @r float
select @r = case when @number = 0 then 0 else round(@number ,@sf -1-floor(log10(abs(@number )))) end
return (@r)
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15648 次 |
| 最近记录: |