我正在尝试使用 sqlalchemy 在 Flask 的 postgres 数据库中存储十进制数,并且该数字被四舍五入

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

我试图在 sqlalchmey 中保存价格变量,但如果它是 78.6,则四舍五入为 79.0

我尝试过数字和浮点数据类型,并且我正在使用 postgresql heroku 数据库

db.Column(db.Float(precision=1,asdecimal=False,decimal_return_scale=None))
python flash flask-sqlalchemy
1个回答
0
投票

文档中所述,精度是要存储的值的总位数,因此您应该增加该数字,因为当前它的值为1,所以我想舍入问题是由于这个原因造成的。此外,由于浮点数的舍入问题,不建议将货币值存储为浮点数。查看其中一些文章(art1art2)。您应该使用整数来存储分,或者使用

db.Decimal(precision=10, scale=2,...)
,这不会损失精度。

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