В PostgreSQL, trunc()
функцията съкращава число.
По-конкретно, той съкращава числото или към нула, или до определен брой десетични знаци.
Синтаксис
trunc()
функцията може да се използва по един от следните начини:
trunc(dp or numeric)
trunc(v numeric, s int)
Първият синтаксис съкращава числото към нула.
Вторият синтаксис го съкращава до определен брой десетични знака. В този случай v
е числото и s
е броят на десетичните знаци.
Пример за първи синтаксис
Ето пример, който използва първия синтаксис.
SELECT trunc(342.49);
Резултат:
342
Пример за втори синтаксис
Ето пример, който използва втория синтаксис.
SELECT trunc(342.49, 1);
Резултат:
342.4
Добавяне на дробни секунди
Ето пример за определяне на брой десетични знаци, когато числото не включва никакви.
SELECT trunc(342, 3);
Резултат:
342 000
Отрицателни числа
Ето пример, който използва отрицателно число.
SELECT round(-4.5);
Резултат:
-5
Отрицателни десетични знаци
Ето какво се случва, когато вторият аргумент е отрицателна стойност.
SELECT trunc(342, -2);
Резултат:
300
Trunc() срещу Round()
В някои случаи trunc()
функцията може да изглежда да работи по подобен начин на round()
. Но те са доста различни функции.
round()
функция закръгля числото. Числото се закръглява до най-близкото цяло число или до определения брой десетични знаци (в зависимост от това дали му давате един или два аргумента).
trunc()
функцията от друга страна просто съкращава числото до нула или до посочения десетичен знак. Не се извършва закръгляване.
Ето пример за демонстриране на разликата.
SELECT
round(342.49, 1),
trunc(342.49, 1);
Резултат:
<предварителен кръг | trunc-------+-------342,5 | 342.4