python 字符串转数字

0 投票
3 回答
1068 浏览
提问于 2025-04-18 11:33

我正在尝试把一个包含小数的字符串转换成数字,像这样。

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')

撰写回答