我有这个模型
class AccountsModel(db.Model):
accountId = db.Column(db.String(20), primary_key=True)
name = db.Column(db.String(20), nullable=False)
surname = db.Column(db.String(20), nullable=False)
total = db.Column(db.Float, nullable=False)
我希望我的数据库有"total"带有2位小数的数字,如0.00
像1.23这样的数字可以工作,但1.2仍然是1.2,1变成1.0
我试过:
total = db.Column(db.Float(precision=2), nullable=False)
total = db.Column(db.Float(2), nullable=False)
total = db.Column(db.Float(5,2), nullable=False)
我也尝试了数值而不是浮点数,但它破坏了一切。
如果您想要一个固定的精度/比例,您可能会寻找sqlalchemyNumeric
类型而不是Float
。浮点数不携带精度或比例信息。
这个微软文档将精度和比例定义为:
因此,精度是指数字中位数的个数。小数是一个数中小数点右边的位数。例如,数字123.45的精度为5,比例为2。
total
列定义可以在sqlalchemy中定义为
total = db.Column(db.Numeric(precision=10, scale=2), nullable=False)