str()最多支持多少位?

soapmaoooo 发布于 2014/06/12 10:16
阅读 210
收藏 0
最近调用str(a/b)时发现,str转换长度是有限制的,好像是14位。。。不直达对不对?从哪里可以查到这个函数最多可以支持多少位?
加载中
0
未注册用户
未注册用户
这个位数应该是float限制住的吧…
0
Nick_Dong
Nick_Dong

http://svn.python.org/view/python/trunk/Objects/stringobject.c?view=markup

是不是这个string_str()

Nick_Dong
Nick_Dong
没发现。应该Py_ssize_t 限制的吧。但是没找到在哪里定义的。 PyAPI_FUNC(Py_ssize_t) PyString_Size(PyObject *); http://svn.python.org/view/python/trunk/Include/stringobject.h?view=markup
O
OSCHINA_CEO
代码从哪里看的啊,求解
0
Nick_Dong
Nick_Dong
>>> aa=1.1234567890123456789
>>> aa
1.1234567890123457
>>> str(aa)
'1.12345678901'
>>> aa=1.1234567890123456789012345678901
>>> aa
1.1234567890123457
>>> print aa
1.12345678901
>>> str(aa)
'1.12345678901'
>>> aa
1.1234567890123457
>>> bb=1234567890123456789012345678901
>>> bb
1234567890123456789012345678901L
>>> bb=12345678901234567890123456789012345678901
>>> bb
12345678901234567890123456789012345678901L
>>> str(bb)
'12345678901234567890123456789012345678901'
>>> cc = 123456789012345678901234567890.1234567890123456789012345678901
>>> cc
1.2345678901234568e+29
>>> str(cc)
'1.23456789012e+29'
>>> print cc
1.23456789012e+29
>>> dd = 12345678901234567890.1234567890123456789012345678901
>>> dd
1.2345678901234567e+19
>>> dd = 1234567890.1234567890123456789012345678901
>>> dd
1234567890.1234567
>>> dd = 12345678901.1234567890123456789012345678901
>>> dd
12345678901.123457
>>> dd = 123456789012.1234567890123456789012345678901
>>> dd
123456789012.12346
>>> str(dd)
'1.23456789012e+11' #12位
>>> dd = 12345678901.1234567890123456789012345678901
>>> str(dd)
'12345678901.1' #12位
>>> dd
12345678901.123457
>>> #windows 7 64位 下应该是不算小数点和科学计数部分共12位 



返回顶部
顶部