【发布时间】:2010-10-03 16:51:39
【问题描述】:
我想知道如何将包含数字的字符串转换为双精度。
【问题讨论】:
-
那不是 python 替身。 python double 的容量是无限的。
我想知道如何将包含数字的字符串转换为双精度。
【问题讨论】:
>>> x = "2342.34"
>>> float(x)
2342.3400000000001
给你。使用 float(其行为与 C、C++ 或 Java 双精度相同,并且具有相同的精度)。
【讨论】:
float('7.5606e-08') 产生预期的 python 浮点数。
>>> x = "2342.34" 并转换为float >>> float(x) 我得到2342.34 而不是@Mongoose 报告的2342.3400000000001
>>> 0.1 + 0.2 表示双倍。 >>> 0.1 + 0.6 用于浮动。
请注意,如果您的字符串编号包含超过 15 个有效数字,float(s) 会将其四舍五入。在这种情况下,最好使用 Decimal
这里是一个解释和一些代码示例: https://docs.python.org/3/library/sys.html#sys.float_info
【讨论】:
小数运算符可能更符合您的要求:
>>> from decimal import Decimal
>>> x = "234243.434"
>>> print Decimal(x)
234243.434
【讨论】: