我试图将一个浮点数截断为两个小数点。例如: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.140000000000006。有人能帮我吗。

最佳答案

对于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

关于sql - 如何在Postgres过程中将浮点数截断为两个小数点,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52473626/

10-09 04:46