Oracle
 sql >> база данни >  >> RDS >> Oracle

3 начина за форматиране на число до 2 знака след десетичната запетая в Oracle

Когато използвате Oracle Database, можете да използвате функции като TO_CHAR(number) за връщане на числа като низ, форматиран до два знака след десетичната запетая (или колкото желаете).

Или можете да използвате функции като ROUND(number) и TRUNC(number) за да закръглите или съкратите числото до необходимия брой десетични знаци.

TO_CHAR() Функция

Ето пример, който използва TO_CHAR(number) функция:

SELECT TO_CHAR(1.2345, 'fm99D00')
FROM DUAL;

Резултат:

1.23

В този случай оригиналното число има повече от два знака след десетичната запетая и така резултатът просто го съкращава до определения брой нули, които следват знака на десетичната запетая/основната точка (D ) в модела на формата.

Причината да използвам нули след десетичния знак е да предоставя нули в края, ако е необходимо.

Пример:

SELECT TO_CHAR(7, 'fm99D00')
FROM DUAL;

Резултат:

7.00

Ако не искам крайните нули, мога да променя 0 символи до 9 с.

Ето сравнение на двете:

SELECT 
    TO_CHAR(7, 'fm99D00') AS "r1",
    TO_CHAR(7, 'fm99D99') AS "r2"
FROM DUAL;

Резултат:

     r1    r2 
_______ _____ 
7.00    7.   

Използване на 9 s в този случай води до знак за основа, но без десетични знаци.

Трябва да отбележа, че fm е модификатор на формат, който премахва всякакво подпълване, което може да бъде приложено към резултата. Можете да пропуснете това, ако нямате нищо против резултатът да бъде подплатен. Въпреки че, ако направите това, може да се окажете с последващи нули, дори когато използвате 9 форматен елемент.

Ето какво се случва, когато премахна fm от предишния пример:

SELECT 
    TO_CHAR(7, '99D00') AS "r1",
    TO_CHAR(7, '99D99') AS "r2"
FROM DUAL;

Резултат:

       r1        r2 
_________ _________ 
  7.00      7.00   

Разбира се, не сте ограничени само до два знака след десетичната запетая – можете да посочите повече десетични знака във вашия модел на формат, ако е необходимо.

Пример:

SELECT TO_CHAR(7, 'fm99D0000')
FROM DUAL;

Резултат:

7.0000

ROUND() Функция

Ето пример, който използва ROUND(number) функция:

SELECT ROUND(1.2573, 2)
FROM DUAL;

Резултат:

1.26

Tтой ROUND() функцията закръглява число до даден десетичен знак. Тук посочихме два знака след десетичната запетая, но можехме да посочим произволно число.

В този случай числото е закръглено нагоре.

TRUNC() Функция

Ето пример, който използва TRUNC(number) функция:

SELECT TRUNC(1.2573, 2)
FROM DUAL;

Резултат:

1.25

TRUNC() функцията съкращава число до даден десетичен знак. Не се получава закръгляване.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Списък с външни ключове и таблиците, към които се отнасят в Oracle DB

  2. хванете изключение на DB в JSF+EJB приложение

  3. Как да използвам динамичен параметър в IN клауза на JPA именувана заявка?

  4. Как да се свържете с базата данни Oracle 11 от . нето

  5. Как да създадете обект oracle.sql.ARRAY?