Когато използвате 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()
функцията съкращава число до даден десетичен знак. Не се получава закръгляване.