Raj*_*eev 7 sql oracle rounding oracle11g
我正在使用Sql Developer在oracle 11g中运行以下查询.
SELECT remainder(25,10),remainder(35,10) FROM dual;
Run Code Online (Sandbox Code Playgroud)
产量
REMAINDER(25,10) REMAINDER(35,10)
---------------------- ----------------------
5 -5
Run Code Online (Sandbox Code Playgroud)
我可以使用MOD()来获得所需的结果,但我的问题是为什么它返回+5为1而-5为其他?
根据文档,REMAINDER(m, n)定义为
m - (n*X)其中X是最接近m/n的整数
显然,当分割的结果在两个数字的中间时,Oracle应用"round to even":
因为REMAINDER(25, 10),你得到
25 / 10 = 2.5 --> nearest integer is 2 (round to even)
25 - (10 * 2) = 5
Run Code Online (Sandbox Code Playgroud)
因为REMAINDER(35, 10),你得到
35 / 10 = 3.5 --> nearest integer is 4 (round to even)
35 - (10 * 4) = -5
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
75 次 |
| 最近记录: |