我是一個PLSQL語句來反轉一個數字。PLSQL中除法運算符的混淆行爲
和代碼是這樣的
declare
num5 int:=54321;
revnum int:=0;
temp int;
num int;
begin
num:=num5;
while(num5>0)
loop
temp:=mod(num5,10);
num5:=num5/10;
revnum:=revnum*10+temp;
end loop;
dbms_output.put_line('Original number is '||num);
dbms_output.put_line('Reverse number is '||revnum);
end;
/
,我得到的輸出是 :
原號碼是54321
反向號碼是123451
我的代碼似乎好的, 爲什麼我會得到額外的'1'
爲了進一步挖掘,我試圖將一個小於10的數字分開,然後我得到1而不是'0';
這裏發生了什麼事?
我試過的示例代碼。
declare
num int:=6;
res int;
begin
res:=num/10;
dbms_output.put_line(res);
end;
/
這裏的輸出是1而不是0.爲什麼?
我從來沒有意識到四捨五入的概念。謝謝羅伯特。 – user3473132
6/10被隱式轉換爲整數(舍入)。 –