如何在 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-tesseract 中设置 tessedit_write_images?
如何在 UITableCellView 中设置 imageView 属性以仅显示背景颜色?