如何在 Python 中设置一个通用选项以在任何地方只显示 N 位数字?

Posted

技术标签:

【中文标题】如何在 Python 中设置一个通用选项以在任何地方只显示 N 位数字?【英文标题】:How to set a general option in Python to display only N digits everywhere? 【发布时间】:2016-08-05 12:46:18 【问题描述】:

我想在 Python 中使用小数点后 3 位数字。要修改的相关设置是什么?

我希望1.0 / 3 会返回 0.333,而不是 0.3333333333333333,就像我的 Jupyter Notebook 中的情况一样,使用 python 2.7.11 和 Anaconda 4.0.0。

在我的研究中,我听说过 Decimal 类,但我不想在每次显示浮点数时在代码中使用 Decimal(x),既不是字符串格式也不是圆形函数,尽管我将它用于暂时(因为我不想每次都用)。

我认为有一个通用的解决方案,一个设置只计算一次。

【问题讨论】:

如果结果来自numpy,可以使用numpy.set_printoptions。 这只是为了打印吗?如果是这样,您可以想象将float 子类化,例如here。话虽如此,这可能是重复的。 【参考方案1】:

您的问题没有“一次性”解决方案。 而且我认为您的方法可能有点误导。

我想您与 Jupyter 或 Ipython 的交互使您得出结论,python 作为数字计算器非常方便。不幸的是,上述两个程序都只是包装器或REPL 程序,并且在后台具有 Python 提供的完整编程语言灵活性。

【讨论】:

【参考方案2】:

使用 numpy 试试这个;

round(1.0/3, 3)

>>> 1.0/3
0.3333333333333333

>>> ':0.3f'.format(1.0/3)
'0.333'

【讨论】:

OP 非常清楚地表示,他想要一些能够自动进行舍入的东西,以便所有浮点数都被舍入。他明确表示他目前使用round 函数,但他不喜欢它,因为他需要为每个号码调用它。如果问题只是“如何将一个数字四舍五入到小数点后三位”,那将是许多其他问题的重复。

以上是关于如何在 Python 中设置一个通用选项以在任何地方只显示 N 位数字?的主要内容,如果未能解决你的问题,请参考以下文章

如何在python中设置套接字选项IP_DONTFRAG?

如何检查是不是从脚本中设置了 python 调试选项

如何在 python-tesseract 中设置 tessedit_write_images?

如何在 UITableCellView 中设置 imageView 属性以仅显示背景颜色?

如何在我的 python 程序中设置密码以显示为星号 [重复]

如何在 JavaScript 中设置多个值以列出值