python 字符串转数字
我正在尝试把一个包含小数的字符串转换成数字,像这样。
bet1size = "0.00000001"
我试过
betsize = int(bet1size)
但是这样会出现
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '0.00000001'
我也试过
betsize = float(bet1size)
但是结果是 1e-08,
betsize = Decimal(bet1size)
还有 1E-8。
为什么会这样?我该怎么正确地做呢?
3 个回答
0
int
是指整数。也就是说,你不能把带小数点的数字存放在int里。
另外两个数字表示的是 1 乘以 10 的负 8 次方,也就是 0.00000001。
0
这是通过 float()
正确处理的。1e-08
实际上就是 "0.00000001"。
这只是打印格式的问题,数字是一样的。
2
科学计数法是一种方便的方式,用来存储或打印浮点数。当数字前面有很多零,比如你提到的例子,使用科学计数法可能会更容易阅读。
如果你想在小数点后面打印特定数量的数字,可以使用格式字符串来设置打印的方式:
format(float(bet1size), '.8f')