Я пытаюсь усечь значение двойной точности , когда я создаю json, используя функцию json_build_object()
в PostgreSQL 11,8 , но безуспешно. Чтобы быть более точным, я пытаюсь усечь 19.9899999999999984 число ТОЛЬКО до двух десятичных знаков, но следя за тем, чтобы он НЕ округлял его до 20,00 (что он и делает), но чтобы сохранить его на 19,98 .
Кстати, до сих пор я пробовал использовать: 1) TRUNC(found_book.price::numeric, 2)
и я получаю значение 20.00 2) ROUND(found_book.price::numeric, 2)
, и я получаю значение 19,99 -> пока что это ближайшее значение, но не то, что мне нужно 3) ROUND(found_book.price::double precision, 2)
, и я получаю
[42883] ОШИБКА: функция round (двойная точность, целое число) не существует
Также вот весь код Я используя:
create or replace function public.get_book_by_book_id8(b_id bigint) returns json as
$BODY$
declare
found_book book;
book_authors json;
book_categories json;
book_price double precision;
begin
-- Load book data:
select * into found_book
from book b2
where b2.book_id = b_id;
-- Get assigned authors
select case when count(x) = 0 then '[]' else json_agg(x) end into book_authors
from (select aut.*
from book b
inner join author_book as ab on b.book_id = ab.book_id
inner join author as aut on ab.author_id = aut.author_id
where b.book_id = b_id) x;
-- Get assigned categories
select case when count(y) = 0 then '[]' else json_agg(y) end into book_categories
from (select cat.*
from book b
inner join category_book as cb on b.book_id = cb.book_id
inner join category as cat on cb.category_id = cat.category_id
where b.book_id = b_id) y;
book_price = trunc(found_book.price, 2);
-- Build the JSON response:
return (select json_build_object(
'book_id', found_book.book_id,
'title', found_book.title,
'price', book_price,
'amount', found_book.amount,
'is_deleted', found_book.is_deleted,
'authors', book_authors,
'categories', book_categories
));
end
$BODY$
language 'plpgsql';
select get_book_by_book_id8(186);
Как мне сохранить ТОЛЬКО две ПЕРВЫЕ десятичные цифры 19. 98 (приветствуются любые предложения / помощь)?
PS PostgreSQL версия 11,8