Как усечь число с плавающей запятой до двух десятичных знаков в процедуре postgres - PullRequest
0 голосов
/ 24 сентября 2018

Я пытаюсь сократить число с плавающей запятой до двух десятичных знаков.например: - номер 14.141244804178488 должен стать 14.14.До сих пор я пробовал вот так

var_A float;
var_A := 14.141244804178488;
select  trunc(var_A ,2) into  var_A; 
raise notice '%', var_A;

, когда я пытаюсь выполнить этот запрос, я получаю исключение в вышеупомянутом запросе.Я также попытался решить, используя приведенный ниже запрос:

/*var_A float;
var_A := 14.141244804178488;*/
select  trunc(141244804178488 ,2) into  var_A; 
raise notice '%', var_A;

Для указанного выше запроса я получаю вывод 14.1400000000000006.Может ли кто-нибудь помочь мне в этом.

1 Ответ

0 голосов
/ 24 сентября 2018

Нет функции trunc() со вторым параметром для float типа данных.

Итак, измените var_A float на var_A numeric и попробуйте:

(Как указывалось @a_horse_with_no_name, лучше назначать переменную с помощью оператора := вместо select..into

do $$
declare
    var_A numeric;
begin
    var_A := 14.141244804178488; 
    var_A := trunc(var_A ,2); 
    raise notice '%', var_A;
end;
$$ language plpgsql
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...