如何在Python中将字符串转换为double?

use*_*646 196 python

我想知道如何将包含数字的字符串转换为double.

Mon*_*ose 288

>>> x = "2342.34"
>>> float(x)
2342.3400000000001
Run Code Online (Sandbox Code Playgroud)

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

  • 或者,更具体地说,Python浮动是C双打. (30认同)
  • 顺便说一句,这也适用于指数表示法.例如:`float('7.5606e-08')`产生预期的python float. (2认同)
  • 使用我的python(版本2.7.10),当我指定`>>> x ="2342.34"`并转换为float` >>> float(x)`我得到`2342.34`而不是@Mongoose报告的`2342.3400000000001` (2认同)

小智 44

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

>>> from decimal import Decimal
>>> x = "234243.434"
>>> print Decimal(x)
234243.434
Run Code Online (Sandbox Code Playgroud)


use*_*754 6

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

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