精度和准确度

时间:2015-03-04 21:20:01

标签: python algorithm math

给定一个双倍,计算数字精度和准确度的最有效方法是什么?理想情况下,我想避免循环。

1 个答案:

答案 0 :(得分:2)

浮点数在python中以二进制形式存储。准确性和精确度在二进制中具有完全不同的含义,特别是考虑到计算机被限制为固定长度的表示。您可以通过注意代码1e16+1 == 1e16返回True来证明这一点。

您链接到Wolfram.com,其中精确度和准确度以十进制数进行讨论。这意味着没有什么可以谈论存储在计算机中的二进制数字中小数点的位置。要使用实际小数精度和准确度来表示和操作十进制数,您需要使用python的Decimal类。

请注意,您必须为Decimal类指定一个字符串,以便在十进制条件下准确。如果你给它一个文字数字(例如Decimal(1.001))你只是给它一个浮点数,你创建的十进制数将是python不精确浮点表示为1.001的精确十进制表示。

遗憾的是,Decimal类没有返回小数点两边的位数的方法。但是,假设您的小数是十进制形式,您可以使用str(x)将其作为字符串进行检查,其中xDecimal的实例。

相关问题