【转】python 浮点数等于判断isclose

python3.5新增函数isclose的使用

 
  • 前言:python3.5的math模块新增一个isclose函数用来判断两个浮点数的值是否接近或相等,这是由于浮点数的计算总是存在一定的误差。下面谈一下用法:
import math
print(math.isclose(1.25,1.25))
# 返回一个布尔值True
  • 源码:
isclose(a, b, *, rel_tol=1e-09, abs_tol=0.0)
  • 参数:
  1. a,b:两个需要比较的浮点数;
  2. rel_tol: 相对于输入值的大小,被认为是“接近”的最大差异;
  3. abs_tol: 无论输入值的大小,被认为“接近”的最大差异
  • 本质算法
abs(a-b) <= max(rel_tol * max(abs(a), abs(b)), abs_tol)
  • 可以自定义参数rel_tol和abs_tol
import math
print(math.isclose(2.1,2.2,rel_tol=0.1))
# 结果:True
# 同理abs_tol也可以自定义
posted @ 2021-04-08 11:59  博客园—哆啦A梦  阅读(578)  评论(0)    收藏  举报