wim*_*wim 3 c python double integer long-integer
我知道python能够处理任意大整数,所以为什么在使用科学记数法时它不能给我一个?为什么1e23与10**23有什么不同?
Python 2.7.3 (default, Aug 1 2012, 05:14:39)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> for x in range(30):
... x1 = eval('long(1e{})'.format(x))
... x2 = eval('long(1{})'.format('0' * x))
... print x1, 'OK' if x1 == x2 else 'YUCK!'
...
1 OK
10 OK
100 OK
1000 OK
10000 OK
100000 OK
1000000 OK
10000000 OK
100000000 OK
1000000000 OK
10000000000 OK
100000000000 OK
1000000000000 OK
10000000000000 OK
100000000000000 OK
1000000000000000 OK
10000000000000000 OK
100000000000000000 OK
1000000000000000000 OK
10000000000000000000 OK
100000000000000000000 OK
1000000000000000000000 OK
10000000000000000000000 OK
99999999999999991611392 YUCK!
999999999999999983222784 YUCK!
10000000000000000905969664 YUCK!
100000000000000004764729344 YUCK!
1000000000000000013287555072 YUCK!
9999999999999999583119736832 YUCK!
99999999999999991433150857216 YUCK!
Run Code Online (Sandbox Code Playgroud)
1e23被解释为浮点数,而是10**23一个整数幂(即整数)的整数
| 归档时间: |
|
| 查看次数: |
204 次 |
| 最近记录: |