设置全局输出精度python


问题内容

我已经编写了一个函数库,以简化我的工程作业,并在python解释器(有点像计算器)中使用它们。一些返回矩阵,一些返回浮点数。

问题是,它们返回太多的小数。例如,当前,当一个数字为0时,我得到一个非常小的数字作为返回值(例如6.123233995736766e-17)

我知道如何分别格式化输出,但这需要为我在解释器中键入的每一行添加一个格式化程序。我正在使用python 2.6。

有没有办法设置会话的全局输出格式(精度等)?

*注意:对于scipy功能,我知道我可以使用

scipy.set_printoptions(precision = 4, suppress = True)

但这似乎不适用于不使用scipy的功能。


问题答案:

您会看到一个事实,即十进制浮点数只能由二进制浮点 近似
。请参阅浮点算法:问题和局限性

您可以在模块库中放置模块级别的变量,并将其用作round()舍入模块中函数返回值的第二个参数,但这很麻烦。

如果您使用ipython(我建议将其用于交互式使用,比常规解释器
好得多),则可以使用’magic’函数%precision