Floating Point Comparison with Incorrect Operator in GitHub repository vim/vim prior to 9.0.0804.
The code performs a comparison such as an equality test between two float (floating point) values, but it uses comparison operators that do not account for the possibility of loss of precision.
| Name | Vendor | Start Version | End Version |
|---|---|---|---|
| Vim | Vim | * | 9.0.0804 (excluding) |
| Vim | Ubuntu | bionic | * |
| Vim | Ubuntu | esm-infra/focal | * |
| Vim | Ubuntu | focal | * |
| Vim | Ubuntu | jammy | * |
| Vim | Ubuntu | kinetic | * |
| Vim | Ubuntu | trusty | * |
| Vim | Ubuntu | upstream | * |
| Vim | Ubuntu | xenial | * |
Numeric calculation using floating point values can generate imprecise results because of rounding errors. As a result, two different calculations might generate numbers that are mathematically equal, but have slightly different bit representations that do not translate to the same mathematically-equal values. As a result, an equality test or other comparison might produce unexpected results.