舍入功能不保留小数

时间:2019-12-17 22:36:48

标签: sql postgresql

说我想将一列中的所有值四舍五入到2个小数点。在以下示例中,我希望将所有值更新为111.27

首先,我使用varchar类型更新所有行

update someTable
    set cash = '111.2659516';

现在,我想舍入所有这些值。如果我投放varchar

update someTable
    set cash = round(cast(cash as double precision), 2);

我将得到这个结果

111.27000000000001
111.27000000000001
111.27000000000001
111.27000000000001

如果我不强制转换值,我将得到结果

111
111
111
111

知道我在做什么错吗?

1 个答案:

答案 0 :(得分:1)

尝试

update someTable
    set cash = cast(cash as decimal(18,2))