一个简单的近似浮点运算模块。
rr.approx的Python项目详细描述
近似浮点运算库。这个简单的模块可以用来比较使用相对和绝对公差的数字,以减少浮点舍入误差。
fromrr.approximportApproxx=Approx(0.1)*3printx==0.3# True
Approx类可以非常简单地用作“常规”浮点的替换项–您可以在大多数(如果不是全部)上下文中使用Approx对象而不是浮点:算术和比较。
ApproxContext类也可以作为Approx.Context访问,它提供了一个上下文管理器来临时修改模块的公差参数。
printApprox.Context()# display current contextApprox.Context(rtol=1e-4,atol=1e-2).apply()# permanently modify tolerancesprintApprox.Context()withApprox.Context(rtol=1e-5,atol=1e-3):# temporary modificationprintApprox.Context()printApprox.Context()
免责声明
请注意,此模块无法解决浮点数字的任何问题。它所做的是提供一个小(或大,取决于您如何配置公差参数)缓冲区来补偿舍入误差,但随着这些误差的累积,您总能得到意想不到的结果。
float rounding在所有计算机和编程语言中本质上都是不精确的,因为它在有限的数字中表示可能重复出现的十进制数。如果您真的关心精确的结果,并且不介意支付性能损失,那么您应该从标准库或其他一些选择中检查decimal模块。
安装
>;来自pypi(“稳定”版本):
pip install rr.approx
或者来自git repo:
git clone https://github.com/2xR/rr.approx.git pip install ./rr.approx