我试图取一个数字并将其除以100得到1%,但当我试图使用int((将其转换为整数时,它给了我一些奇怪的输出。我不知道我在这里做错了什么。
totalsupply = 1000000000000000000000000000000
onepercent = int((totalsupply/100))
print(totalsupply)
print(onepercent)
输出如下:
1000000000000000000000000000000
9999999999999999583119736832
[Finished in 68ms]
我原以为百分之一是这样的:10000000000000000000000000000。
根据这篇文章,python试图将数字转换为除法上的浮点值。但是,浮点值仅限于1.7976931348623157e+308
。一个变通方法是使用//
运算符,它从除法中返回一个int,因此对于您的示例:
totalsupply = 1000000000000000000000000000000
onepercent = totalsupply//100
print(totalsupply)
print(onepercent)
Python有一个内置的整数类型,具有无限精度。这就是你用第一行创建的
totalsupply = 1000000000000000000000000000000
然而,python有两个除法运算符。标准划分";斜线";运算符("/"(是浮点运算,而双斜杠给出整数。
因此,totalsupply/100
是一个浮点数,其精度有限,因此它能做的最接近的是9999999999999999583119736832
。
然而,如果你做
onepercent = totalsupply//100
print(onepercent)
你得到了预期的CCD_ 5。