У меня 42,4300001, и я хочу, чтобы это значение было 42,44.Есть ли отличный способ сделать это в PostgreSQL?
demo: db <> fiddle
SELECT ceil(42.4300001 * 100) / 100
ceil() всегда округляется до следующего целого числа.Результат: 42.4400000000000000
ceil()
42.4400000000000000
Чтобы вырезать конечный ноль, вы можете сделать
trunc(result, 2) или привести к result::decimal(digits, 2)
trunc(result, 2)
result::decimal(digits, 2)
Один из способов:
trunc(42.4300001::numeric + 0.00999999999999999999999999, 2)
Приведение к numeric необходимо для функции с двумя аргументами trunc.
numeric
trunc
Примечание: Это будет тольконадежно работать для real и double precision номеров.
real
double precision