舍入和浮点精度

问题描述 投票:0回答:1

我们正在将数据写入 SQL 数据库(具体来说是 sqlite3)。对于特定列

quantity
,它被指定为
REAL
(浮点)列,因为我们将
quantity
存储为 1000 的倍数(因此整数数量除以
1000
)。所以存储的数量精确到小数点后第三位,但是由于浮点精度,我们有时会在小数点后第三位之后看到随机的非零值。

我的同事正在尝试使用

round
来处理这个问题,但我不知道这对解决这个问题有什么帮助。事实上,我认为它对这个特定问题没有任何作用。

我的理解是,如果我们坚持使用浮动,那么在编写时没有办法真正解决这个问题。

python sql sqlite floating-point rounding
1个回答
0
投票

SELECT CAST(quantity * 1000 AS INT).....将截断小数点后第三位后的任何随机非零值。

© www.soinside.com 2019 - 2024. All rights reserved.