How does python compare whether two floating point numbers are equal?
Related recommendations: "python video"
float type cannot Compare equal or unequal, but you can compare >, <, >=, <=
It is grammatically correct to use ==, but the two floating point numbers that should be equal are due to the internals of the computer. The reasons expressed may have slight errors. In this case, == will be used to think that they are not equal. You should use the absolute value of the difference between two floating point numbers to be less than an acceptable value to determine whether they are equal, such as
if (fabs(price - p) < 0.000001)
instead of
if (price == p)
Many engineering applications use the method of calculating accuracy
Define a precision and compare it with the absolute value of the difference. It is considered equal within the precision range; the size can be directly compared.
Floating point variables cannot be compared with any number using "==" or "!=".
Be sure to note that variables of type float or double have precision limits. Therefore, be sure to
avoid comparing floating-point variables with numbers using "==" or "!=", and try to convert them into ">=" or "<=" forms.
Assuming that the name of the floating point variable is error (i.e. accuracy).
Computer representation of floating-point numbers (float or double type) has a precision limit. For floating-point numbers that exceed the precision limit, the computer will truncate the decimal part beyond their precision. Therefore, two floating point numbers that are originally unequal may become equal in the computer. For example:
if ((x>=-EPSINON) && (x<=EPSINON))
Mathematically a and b are not equal, but they are equal in a 32-bit computer.
float a=10.222222225,b=10.222222229
The above is the detailed content of Python method to compare whether two floating point numbers are equal. For more information, please follow other related articles on the PHP Chinese website!