刚从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
。
例如:
但是,在python3.4中,decimal
不允许我将Emin设置为正数。在
如何实现与2.7中相同的行为?在
好吧,最终即使是2.7版本的
decimal
模块也不完全是SQL数字友好的。我必须对照我想要的上下文检查每一个结果。我现在在类构造函数中添加了一个额外的量化步骤。在相关问题 更多 >
编程相关推荐