Python中文
首页
教程
问答
标签
搜索
登录
注册
判断两个数在舍入到n位有效小数时是否近似相等的函数
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我被要求测试由第三方提供的库。已知库精确到<em>n</em>有效数字。任何不太重要的错误都可以安全地忽略。我想写一个函数来帮助我比较结果:</p> <pre><code>def nearlyequal( a, b, sigfig=5 ): </code></pre> <p>此函数的目的是确定两个浮点数(a和b)是否近似相等。如果a==b(完全匹配),或者a和b的值在小数点后四舍五入为有效数字时相同,则函数将返回True。</p> <p>有人能提出一个好的实施方案吗?我写了一个小单元测试。除非你能在我的测试中看到一个bug,否则一个好的实现应该通过以下几点:</p> <pre><code>assert nearlyequal(1, 1, 5) assert nearlyequal(1.0, 1.0, 5) assert nearlyequal(1.0, 1.0, 5) assert nearlyequal(-1e-9, 1e-9, 5) assert nearlyequal(1e9, 1e9 + 1 , 5) assert not nearlyequal( 1e4, 1e4 + 1, 5) assert nearlyequal( 0.0, 1e-15, 5 ) assert not nearlyequal( 0.0, 1e-4, 6 ) </code></pre> <p>附加说明:</p> <ol> <li>值a和b的类型可以是int、float或numpy.float64。值a和b将始终为同一类型。转换不能在函数中引入额外的错误,这一点很重要。</li> <li>让我们保持这个数值,这样转换成字符串或使用非数学技巧的函数就不理想了。这个程序将由一个数学家审核,他希望能够证明这个函数做了它应该做的事情。</li> <li>速度。。。我要比较很多数字,所以越快越好。</li> <li>我有numpy,scipy和标准库。其他的东西对我来说都很难得到,特别是对于这个项目的一小部分。</li> </ol>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>这是一张照片。</p> <pre><code>def nearly_equal(a,b,sig_fig=5): return ( a==b or int(a*10**sig_fig) == int(b*10**sig_fig) ) </code></pre>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何根据与其他行比较的列表筛选序列?
5 回答
如何根据与前一行的差异对行进行分组?
4 回答
如何根据与另一个图像匹配的图像特征来变换图像?
1 回答
如何根据与另一个模型的关系在模板视图中查询另一个Django模型
1 回答
如何根据与已知参考轨迹的距离过滤出位置数据?
9 回答
如何根据与现有值比较的下限和上限创建新的pandas系列
9 回答
如何根据与输入字符串共享的特征从数据集中获取值
2 回答
如何根据与长生不老药的多对多关系排序?
1 回答
如何根据世代显示,x'攻击'和y'防御'
3 回答
如何根据两个CSV文件中的公共信息用Python合并两个CSV文件?
3 回答
如何根据两个CSV文件的相似性比较它们的行?
7 回答
如何根据两个不同列的值在一列中填充NaN
1 回答
如何根据两个不同列的日期获取交叉联接表的唯一记录?
5 回答
如何根据两个不同列表中的相应值创建if语句?
8 回答
如何根据两个不同栏目的分数组成三个不同的班级,有人能指导我吗,请参考我的代码
5 回答
如何根据两个不同的字符串检查变量?9行examp
2 回答
如何根据两个值对词典进行分组?
3 回答
如何根据两个列表获得自定义元组的计数
3 回答
如何根据两个变量的条件打印特定输出
4 回答
如何根据两个变量重新采样以均匀地派生类?
10 回答