gpt4 book ai didi

python - 如何在python中获得小数精度?

转载 作者:太空宇宙 更新时间:2023-11-03 12:40:47 24 4
gpt4 key购买 nike

情况是这样的:

  • 我正在编写单元测试并比较 PostgreSQL 中的 NUMERIC 精度 (10, 2)

我的测试 断言为

self.assertEquals(Decimal(89.12), user_two_transactions[0].amount)

我失败了

AssertionError: Decimal('89.1200000000000045474735088646411895751953125') != Decimal('89.12')

我怎样才能使它更精确并确保金额正确地保存在数据库中?

最佳答案

用字符串初始化小数:

Decimal('89.12')

如您所见,89.12 不能精确表示为 float 。

Decimal construction documentation.

你的另一个选择是 (sign, digits, exponent) 元组:

In [3]: Decimal((0, (8, 9, 1, 2), -2))
Out[3]: Decimal('89.12')

但是如果没有充分的理由请不要这样做:)

关于python - 如何在python中获得小数精度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15768483/

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