Python 3 十进制模块和限制十进制长度

2024-06-18 17:13:34 发布

您现在位置:Python中文网/ 问答频道 /正文

刚从2.7升到3.4,我遇到了一个十进制问题:

我试图用decimal模块复制SQL数值数据类型。 在2.7中,我这样做了:

def copy_ctx(places, prec):
    res = DefaultContext.copy()
    res.prec = places
    res.Emin = res.Emax = places - prec - 1
    return res

这有效地将任何结果Decimal限制在指定数量的位置或更少。 尝试实例化一个太大的数字将产生一个OverflowError。 例如:

^{pr2}$

但是,在python3.4中,decimal不允许我将Emin设置为正数。在

如何实现与2.7中相同的行为?在


Tags: 模块类型sqldefresdecimalctxcopy
1条回答
网友
1楼 · 发布于 2024-06-18 17:13:34

好吧,最终即使是2.7版本的decimal模块也不完全是SQL数字友好的。我必须对照我想要的上下文检查每一个结果。我现在在类构造函数中添加了一个额外的量化步骤。在

相关问题 更多 >