/*程式名:p_bo_getnum
功能:獲取擷取固定數字的小數/四捨五入固定數字的數字
*/create
function
p_bo_getnum
(@oldnum
nvarchar(100), --
原始數字
@istruncate
int, --
是否截斷
@retaindigit
int--
保留小數字
)returns
nvarchar(100
)begin
--返回的數字
declare
@resultnum
nvarchar(100
)
--判斷當前數字是否含有小數字
declare
@returnindex
intset
@returnindex
=(select
charindex('
.',@oldnum,0
))
if@returnindex=0
begin
set@oldnum
=@oldnum+'
.0000000000000
'end
--判斷是否為截斷
if@istruncate=1
--截斷
begin
--定義臨時表儲存整數和小數
declare
@temp
table(num nvarchar(100), numid int
identity(1,1
))
--將整數和小數儲存到@temp
insert
into
@temp
(num)
select a.value from bosplit(@oldnum,'.'
)a
--定義整數和小數
declare
@num1
nvarchar(100)--
整數declare
@num2
nvarchar(100)--
小數set
@num1
=(select
top (1) num from
@temp
order
by numid asc
)
set@num2
=(select
top (1) left(num,@retaindigit) from
@temp
order
by numid desc) --
保留幾位小數這裡就會擷取到幾位
set@resultnum
=@num1+'
.'+@num2
endelse
--四捨五入
begin
set@resultnum
=(select
round(@oldnum,@retaindigit))--
--保留幾位小數這裡就會四捨五入到幾位
end--
返回結果
return
@resultnum
end
--返回結果:四捨五入
select dbo.p_bo_getnum('
61.25677
',0,3)--
擷取select dbo.p_bo_getnum('
61.25677
',1,3)
sql 將小數四捨五入
如何使用 oracle round 函式 四捨五入 描述 傳回乙個數值,該數值是按照指定的小數字元數進行四捨五入運算的結果。select round number,decimal places from dual 引數 number 欲處理之數值 decimal places 四捨五入 小數取幾位 ...
js 小數相乘 四捨五入
今天工作遇到了這個問題,兩個小數相乘,會得到小數點後很多位數的數,我想要的是得到乙個正常的數字,然後進行四捨五入,來儲存兩位小數 這個是我用到的科學計數法的外掛程式 先進性安裝 npm install mathjs 用到的是如下兩種 1 const math require mathjs const...
qt的四捨五入 Qt(C )四捨五入
qt現在是四捨六入五成雙,要想四捨五入得自己想辦法,實現如下 include include double c1 3.435 double c2 3.445 double c3 3.4351 double c4 3.4451 double c5 3.445 qdebug qdebug qdebug ...