python将字符串解析为精确浮点

python将字符串解析为精确浮点,python,Python,看到了一些其他的问题,但没有人回答这个问题 val = "0.000" print val 0.000 f = float(val) print f 0.0 我如何将它们保持为浮点数,但强制它们成为0.000的精确值?浮点数0.0和0.000是无法区分的:它们由完全相同的位模式表示 如果要保留零,则必须使用不同的数据类型,例如字符串或: In [7]: from decimal import Decimal In [8]: d1 = Decimal("0.0") In [9]: d2 =

看到了一些其他的问题,但没有人回答这个问题

val = "0.000"
print val
0.000
f = float(val)
print f
0.0

我如何将它们保持为浮点数,但强制它们成为
0.000
的精确值?

浮点数
0.0
0.000
是无法区分的:它们由完全相同的位模式表示

如果要保留零,则必须使用不同的数据类型,例如字符串或:

In [7]: from decimal import Decimal

In [8]: d1 = Decimal("0.0")

In [9]: d2 = Decimal("0.000")

In [10]: str(d1)
Out[10]: '0.0'

In [11]: str(d2)
Out[11]: '0.000'

float
0.0
0.000
彼此无法区分:它们由完全相同的位模式表示

如果要保留零,则必须使用不同的数据类型,例如字符串或:

In [7]: from decimal import Decimal

In [8]: d1 = Decimal("0.0")

In [9]: d2 = Decimal("0.000")

In [10]: str(d1)
Out[10]: '0.0'

In [11]: str(d2)
Out[11]: '0.000'

0.0
0.0000
不一样吗?其他一些例子会更好。0.000表示0到10^-4@Badmiral但是
0.0==0.0000=True
“十进制模块包含一个有效位的概念”@MartijnPieters如果OP是做物理之类的事情,那么0.0和0.00之间就有一个区别
0.0
0.0000
不一样吗?其他一些例子会更好。0.000表示0到10^-4@Badmiral但是
0.0==0.0000=True
“十进制模块包含了有效位的概念”@MartijnPieters如果OP是做物理之类的事情,那么0.0和0.00之间就有差异