2014-10-10 125 views
0

大量我得到一个较大的值作为字符串如下代表蟒蛇

s='1234567' 
d='12345678912' 

我想要做算术为(100/d)*s 要做到这一点,我需要将字符串转换为适当大的值。将它们表示为一个数字的方式是什么?

+0

python中的数字可以像您希望的那样大。不需要使用字符串。只要做'int(number)'就完成了。 Python 3具有很多数字特性。 – 2014-10-10 03:39:45

+0

查看十进制模块 – tdelaney 2014-10-10 03:41:23

+0

@GamesBrainiac我认为'int'不能用OP给出的例子工作,在大多数情况下它会输出'0'。 – 2014-10-10 03:42:55

回答

0

只需使用float转换它们即可。 Python负责创建适当的大型表示。你可以阅读更多关于Numerals here

s='1234567' 
d='12345678912' 

(100/float(d))*float(s) 

你可以使用int转换它们,但作为@GamesBrainiac指出,将在Python3只工作;在Python2中,它会在大多数时间给你0结果。

(100/int(d))*int(s) 
+0

我得到一个无效的文字浮动错误 – user2626431 2014-10-10 03:42:36

+0

@ user2626431它对我来说工作正常。你的输入值是什么?他们是否包含空白? – 2014-10-10 03:44:19

0

如果sd很大例如,成千上万的数字,那么你可以使用fractions module找到部分:

from fractions import Fraction 

s = int('1234567') 
d = int('12345678912') 
result = Fraction(100, d) * s 
print(result) 
# -> 30864175/3086419728 

float具有有限的精度;它不适用于非常大/小的数字。