sqlite:数学运算不是 return 数字,即使单元格是真实的

sqlite: mathematical operation doesn't return numeric, even though the cell is REAL

我有一个包含三列的 tabletraffic INTEGER, revtraffic INTEGER, ratio REAL

当我按以下方式更新比率列时:

UPDATE table
SET ratio = revtraffic/traffic

它 returns 在所有单元格中为 0.0。但是,如果写:

SET ratio = revtraffic*100/traffic 

然后它会显示正确的结果,但显然,100 倍幅度太大了。到底是怎么回事?

revtraffictraffic 是整数,因此将它们除以 integer division,returns 仅除法的 "whole" 部分(即小数点左边的部分)。当您将此结果分配给 real.

时,此结果将提升为 real

您可以通过将其中一个参数显式转换为 real:

来解决此问题
UPDATE table SET ratio = (CAST revtraffic AS REAL)/traffic