我必须比较两个数字.其中一个来自custt python代码,另一个来自numpy.调试器显示它们具有相同的值'29 .0',但是第一个的float类型和第二个的类型是float64,所以a == b并且a - b == 0是False.我怎么处理它?有没有办法强制常规python变量默认float64使用或numpy使用float?
更新:最后所有这些值来自29.0写入的同一文件,因此我认为数值不存在差异.
Ant*_*des 19
你不应该用任何编程语言来比较浮点数是否相等,因为你永远不会知道它们是完全相等的.相反,您应该测试它们的差异是否小于容差:
if abs(a - b) < 1e-10
Run Code Online (Sandbox Code Playgroud)
所以这个问题float与float64(和Python自动转换它们)之间的区别没有关系,而是与浮点数相等的基本问题.