舍入函数不保留小数



假设我想将一列中的所有值四舍五入到小数点后 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

知道我做错了什么吗?

尝试

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

最新更新