在iPython中打印值

时间:2016-12-21 14:33:21

标签: python python-3.x ipython spyder

我定义了一个包含属性和打印功能的类,它将类的属性打印到控制台。如果我将打印功能称为:object.printing_function(),则打印所需的值,例如: 0.24

但是,当我从没有类访问属性时,如:object.attribute,返回值为0.23999999999999。

Print(object.attribute)也给出0.24,如何更改object.attribute返回0.24?

我正在使用: Spyder(Anaconda) Python 3.5

3 个答案:

答案 0 :(得分:1)

您可以使用可以精确表示十进制数的$(document).click(function(evt) { if ($(evt.target).closest('#search-container, #search-results').length == 0) { searchInput.hide(); searchResults.hide(); } }); 类:

Decimal

正如评论所指出的那样,作为浮点数的0.24不能用二进制精确表示,正如1/3不能用十进制精确表示。

答案 1 :(得分:0)

如果属性是浮点数,如果直接访问该属性,则必须格式化输出:

val = 0.23999999999999
print("{:.2f}".format(val))

# Output
# '0.24'

答案 2 :(得分:0)

我认为你需要的是IPython精准魔术:

https://ipython.org/ipython-doc/3/interactive/magics.html#magic-precision

例如,在IPython控制台中编写此命令:

In [2]: %precision 3

之后,您将使用3个浮点数字打印所有数字。