如何在Python中将字符串转换为浮点数?

263

我想知道如何将一个包含数字的字符串转换为双精度浮点数。


1
那不是Python的double。Python的double具有无限容量。 - user282374
3个回答

391
>>> x = "2342.34"
>>> float(x)
2342.3400000000001

这里是答案。使用float(它的行为和精度与C、C++或Java的double相同)。


51
更具体地说,Python中的浮点数是C语言中的双精度浮点数。 - habnabit
1
Bah 使用了 float 而不是 double。现在我的代码偏差了 0.0000000001,这很痛苦。 - Evorlor
2
顺便提一下,指数符号也可以使用。例如:float('7.5606e-08')会产生预期的Python浮点数。 - drevicko
2
使用我的Python(版本2.7.10),当我赋值 >>> x = "2342.34" 并将其转换为浮点数 >>> float(x) 我得到的是 2342.34 而不是 @Mongoose 报告的 2342.3400000000001 - Bruce_Warrior
使用 >>> 0.1 + 0.2 表示双精度浮点数。使用 >>> 0.1 + 0.6 表示单精度浮点数。 - user1510539

57

十进制运算符可能更符合您的需求:

>>> from decimal import Decimal
>>> x = "234243.434"
>>> print Decimal(x)
234243.434

1
返回的是 Decimal(...) 对象,而不是简单的数字。 - mendel

5

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接