【问题标题】:How do I convert a string to a double in Python?如何在 Python 中将字符串转换为双精度?
【发布时间】:2010-10-03 16:51:39
【问题描述】:

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

【问题讨论】:

  • 那不是 python 替身。 python double 的容量是无限的。

标签: python string double


【解决方案1】:
>>> x = "2342.34"
>>> float(x)
2342.3400000000001

给你。使用 float(其行为与 C、C++ 或 Java 双精度相同,并且具有相同的精度)。

【讨论】:

  • 或者,更具体地说,Python 浮点数是 C 双精度数。
  • 呸使用浮点数而不是双精度数。现在我的代码关闭了 .0000000001 这很痛
  • 顺便说一句,这也适用于指数符号。例如:float('7.5606e-08') 产生预期的 python 浮点数。
  • 使用我的python(2.7.10 版),当我分配>>> x = "2342.34" 并转换为float >>> float(x) 我得到2342.34 而不是@Mongoose 报告的2342.3400000000001
  • 使用>>> 0.1 + 0.2 表示双倍。 >>> 0.1 + 0.6 用于浮动。
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

    小数运算符可能更符合您的要求:

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

    【讨论】:

    • 返回的东西是Decimal(...),不是简单的数字。
    猜你喜欢
    • 2022-01-16
    • 1970-01-01
    • 2011-08-11
    • 1970-01-01
    • 2014-07-24
    相关资源
    最近更新 更多