中位数的差数小数点后是str(f)
和repr(f)
之间的差异。
默认情况下,该值被转换成字符串(之前在ipython
控制台显示),使用repr()
:
In [1]: class C:
...: def __str__(self):
...: return 'str'
...: def __repr__(self):
...: return 'repr'
...:
In [2]: C()
Out[2]: repr
In [3]: str(C())
Out[3]: 'str'
顺便说一句,我不能重现上的Python 3.4的输出:
In [4]: 1445007755.321532
Out[4]: 1445007755.321532
In [5]: str(1445007755.321532)
Out[5]: '1445007755.321532'
In [6]: 1445007755.321532 .__str__()
Out[6]: '1445007755.321532'
但我可以重现它的Python 2:
In [1]: 1445007755.321532
Out[1]: 1445007755.321532
In [2]: str(1445007755.321532)
Out[2]: '1445007755.32'
In [3]: 1445007755.321532 .__str__()
Out[3]: '1445007755.32'
注:float()
这里不恢复精度:
In [4]: float('1445007755.32')
Out[4]: 1445007755.32
In [5]: float(1445007755.32)
Out[5]: 1445007755.32
float(a)
显示在你的问题更多的数字,因为a
已经是一个浮动(它可能是一个空操作操作,因为花车是不可改变的):
In [6]: a = 1445007755.321532
In [7]: a is float(a)
Out[7]: True
即,在这种情况下,float(a)
可能会返回完全相同的对象。
来源
2015-10-16 17:03:09
jfs
检查http://stackoverflow.com/q/1317558/1860929 –
str截断“。”后面的值。更具可读性。 –