248

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

4

3 回答 3

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

你去吧。使用 float(其行为与 C、C++ 或 Java double 的行为相似且具有相同的精度)。

于 2009-01-27T05:49:18.183 回答
55

小数运算符可能更符合您要查找的内容:

>>> from decimal import Decimal
>>> x = "234243.434"
>>> print Decimal(x)
234243.434
于 2011-06-17T11:56:28.090 回答
3

请注意,如果您的字符串编号包含超过 15 个有效数字float(s),则会将其四舍五入。在这种情况下,最好使用Decimal

这是一个解释和一些代码示例: https ://docs.python.org/3/library/sys.html#sys.float_info

于 2018-01-25T01:11:20.520 回答