Python method to compare whether two floating point numbers are equal

爱喝马黛茶的安东尼
Release: 2019-06-17 16:43:11
Original
12076 people have browsed it

How does python compare whether two floating point numbers are equal?

Related recommendations: "python video"

Python method to compare whether two floating point numbers are equal

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)
Copy after login

instead of

 if (price == p)
Copy after login

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))
Copy after login

Mathematically a and b are not equal, but they are equal in a 32-bit computer.

If the absolute value of the difference between two floating-point numbers with the same sign is less than or equal to a certain acceptable error (ie, precision), they are considered equal.

Don't directly use "==" or "!=" to compare two floating point numbers, but you can directly use "<" and ">" to compare which one is bigger and which one is smaller.

float a=10.222222225,b=10.222222229
Copy after login

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!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!