在PHP中,可以通过四舍五入来安全地比较两个浮点数吗?


Can you safely compare two floats by rounding them in PHP?

与其使用epsilon进行浮点数比较,还不如将两个浮点数舍入到所需的精度,从而可靠地比较它们的等价性?

例如:

round($float, 3) === round($otherFloat, 3)

No。如果你的数字刚好在值的两侧,函数将向上而不是向下舍入(如果你四舍五入到最接近的整数,则为半整数),那么它们将四舍五入到不同的数字,无论它们多么接近。