特定の有効桁数に丸めるための丸め関数オラクルはありますか?
たとえば、1278 を 1300 に丸め、有効数字 2 桁に丸めます。
頭のてっぺんから、おそらくさらに最適化する必要があります:)
16:54:16 SYSTEM@dwal> select to_number(to_char(1278, '9.9EEEE')) t from dual;
T
----------
1300
Elapsed: 00:00:00.01
16:54:34 SYSTEM@dwal> select to_number(to_char(.1234, '9.9EEEE')) t from dual;
T
----------
.12
Elapsed: 00:00:00.01
は有効桁数であり、丸められる値はROUND(x, d - FLOOR(LOG(10, x)) - 1)
どこですか。d
x
例:
SELECT
ROUND(x, d - FLOOR(LOG(10, x)) - 1)
FROM (SELECT 1278 x, 2 d FROM DUAL UNION ALL
SELECT 0.1234 x, 2 d FROM DUAL );
select round(1348,-2) from dual;