gpt4 book ai didi

python - 将货币插入 SQL 数据库

转载 作者:太空宇宙 更新时间:2023-11-03 20:19:41 25 4
gpt4 key购买 nike

我正在尝试使用 sqlite 和 PyQt5 将货币值插入到项目数据库中。

元素名称 - 元素数量

格式应为:X.XX

这里重要的部分是我希望插入到 sqlite 数据库中的每个值都显示出来,并在美元金额后具有最多 2 位小数的值。 (我还听说小数点后 4 位可以很好,有助于舍入误差,我对此也持开放态度)

无论我做什么,如果我的美元值(value)没有美分 ($X.00),它就会作为“X”插入数据库。

我正在使用设计器,因此我没有针对我的小部件(其中我使用双旋转框)的特定代码,因此这里是该小部件的设置图片:/image/N3kgl.jpg

这是数据库结构:

c.execute("CREATE TABLE items (id INTEGER PRIMARY KEY, name text, type bit, category text, date text, amount decimal(19,4), importance tinyint, notes text)")

因此,金额列是十进制(19,4) 数据类型。

获取双旋转框的值:

amount = self.item_amount.value()

item = [name, group, category, date, amount, importance, notes]

然后它被插入到数据库中。

c.execute('INSERT INTO items (name, type, category, date, amount, importance, notes) VALUES (?,?,?,?,?,?,?)', item)

没有获得错误消息,但如果我的值是偶数美元金额(即 200.00 存储为 200),则我的值将被插入到数据库中,且不带小数位。

最佳答案

这只是数字的表示方式。如果你没有小数,则无需将 200 表示为 200.00(就 SQLite 而言),如果你有 200.11,它应该准确地返回该数字。在您的情况下,您需要让 UI 组件为您填充小数或您自己填充。在你的原因中,似乎 decimal(19,4) 可能不是你想要的(我在这里可能是错的),你本质上是说你想要 19 位数字,小数点后 4 位,但是您似乎希望 UI 组件显示 2 位小数。现在,很多人确实会跟踪货币的一美分小数部分,在这种情况下,我理解想要存储该精度,但是我还要确保您在 UI 中表示相同的精度级别。

简单地说,无论您使用哪种类型,如果您插入 200.00,您总是会查询到 200。如果它在您的 UI 中表示为 200,那么您可能需要探索用于填充小数的特定工具包。

在Python中你可以很容易地填充小数

format(value, '.2f')

但是,了解这将始终返回一个字符串非常重要。您的 UI 工具包中可能有一种方法可以处理这种格式。

关于python - 将货币插入 SQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58240873/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com