有没有一种简单的方法检查 2 个浮点数是否近似相等?

在 LUA 中,是否有一种方法检查浮点数是否近似相等?

点赞
用户4403144
用户4403144

将下面翻译成中文并且保留原本的 markdown 格式,

只要设置一个阈值,如果两个数值之间的差异小于这个阈值,则认为它们相等:

a = 1.23456789
b = 1.23456777

threshold = 0.000001

diff = math.abs(a - b) -- 绝对值差异
print(diff < threshold) -- 如果差异小于阈值,则为真

输出结果:

true
2018-06-30 03:39:40
用户107090
用户107090

你还可以比较它们的十进制表示方式:

function decimal(x)
  return string.format("%.3f",x)
end

print(decimal(x)==decimal(y))
2018-06-30 04:20:10