【问题标题】:SQLAlchemy commits makes float to be roundedSQLAlchemy 提交使浮点数四舍五入
【发布时间】:2013-12-28 06:48:42
【问题描述】:

我有一个带有 Float 列的架构,如下所示:

Base = declarative_base()
class Table(Base):
    __tablename__ = 'table'
    id = Column(Integer,primary_key=True)
    amount = Column(Float(16,2))

当我向该表提交一些行时,sqlalchemy 会将浮点数四舍五入为整数:

t = Table()
t.amount = 2.25

session.add(t)
# right here, t.amount is still 2.25
session.commit()
# here, t.amount is already 2

在我的数据库上执行一些 SQL 会得到以下结果:

SELECT * FROM Table

id  | amount
-------------
 1  | 2

发生这种情况是否有原因?一些缺失或错误的配置?我也尝试过使用 Numeric 数据类型,但结果是一样的

我在这里使用带有 MySQL 数据库的 sqlalchemy 0.8.2

【问题讨论】:

    标签: python mysql sql sqlalchemy


    【解决方案1】:

    嗯,我认为这与精度参数有关。使用数字,它的工作!以前用过Numeric,忘记用精度参数了。

    请原谅,这个问题已经有了答案……

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-27
      • 2016-04-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多