3

特定の有効桁数に丸めるための丸め関数オラクルはありますか?

たとえば、1278 を 1300 に丸め、有効数字 2 桁に丸めます。

4

3 に答える 3

3

頭のてっぺんから、おそらくさらに最適化する必要があります:)

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
于 2012-12-05T08:55:44.257 に答える
3

は有効桁数であり、丸められる値はROUND(x, d - FLOOR(LOG(10, x)) - 1)どこですか。dx

例:

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  );
于 2013-11-06T14:11:21.943 に答える
1
select round(1348,-2) from dual;
于 2012-12-04T18:44:33.523 に答える