SUM() 函数给出不正确的输出

SUM() function gives incorrect output

我有一个 table 名为 trust_fund:

trust_fund table

我的查询是: $sql = "SELECT SUM(available_balance) AS total_fund FROM trust_funds WHERE type = 'Admin'";

起初,它显示 100000000 是正确的,但是当我更新 table(将 500 从 Admin 转移到 Agent)时,Admin available_balance 变为 99,999,504,而 Agent 变为 500.

管理员余额多了4。我尝试将 500 转回管理员帐户,管理员帐户变为 100000008。

The Output of the Query

我很困惑,因为 tables 显示正确的值,100000000 和 0,但是 运行 查询将给出 100000004。

请帮忙

Table定义

Column Type
id INT(AI)
uid Text
available_balance Float
wallet_address Text
type Text

您的问题是由于您对货币使用了 FLOAT 数据类型。

FLOAT 对于货币列来说是一个糟糕的选择,因为它会引起表示和舍入方面的错误(参见 Is floating point math broken?

如果您使用的是整数值,请使用 INT(或 BIGINT)。或者,使用 DECIMAL 来存储和使用精确的十进制值。