gpt4 book ai didi

Python 十进制 ROUND_UP InvalidOperation

转载 作者:行者123 更新时间:2023-12-01 04:47:42 27 4
gpt4 key购买 nike

为什么要转换为 2 位小数的数字?

x = 369.69

y=decimal.Decimal(x)
Decimal('369.68999999999999772626324556767940521240234375')

即使我已经声明

getcontext().prec = 2       

那么为什么如果我尝试让汇总得到370.00:

y.quantize(decimal.Decimal('0.01'),rounding=decimal.ROUND_UP)

最终出现此错误:

InvalidOperation: quantize result has too many digits for current
context
quantize result has too many digits for current context

最佳答案

问题是 x 是一个 float ,因此一旦分配给 x 就会失去精度。如果您想解决此问题,可以将 x 设为字符串 "369.69"。从字符串构建的 Decimal 将具有精确的精度。

关于Python 十进制 ROUND_UP InvalidOperation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29081731/

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