Объектное представление значений с плавающей запятой может быть различным (одинаковым) для равных (не равных) значений с плавающей запятой
Этот дефект возникает при сравнении объектного представления значений с плавающей запятой или объектного представления структур, содержащих элементы с плавающей запятой. При использовании функций memcmp, bcmp, или wmemcmp для выполнения сравнения битовой комбинации, возникает дефект.
Объектное представление значений с плавающей запятой использует определенные битовые шаблоны для кодирования этих значений. Значения с плавающей запятой, например, -0.0 и 0.0 в стандарте МЭК 60559 могут иметь различные битовые шаблоны в представлении объекта. Аналогично, значения с плавающей запятой, которые не равны, могут иметь одинаковый битовый шаблон в представлении объекта.
При сравнении структур, содержащих элементы с плавающей запятой, сравнивайте элементы структуры по отдельности.
Для сравнения двух значений с плавающей запятой используйте == или != операторов. При соблюдении стандарта, препятствующего использованию этих операторов, например MISRA ®, убедитесь, что разница между значениями с плавающей запятой находится в допустимом диапазоне .
| Группа: Программирование |
| Язык: C | C++ |
| По умолчанию: Откл. |
Синтаксис командной строки:
MEMCMP_FLOAT |
| Воздействие: Низкий |
Find defects (-checkers) | Floating point comparison with equality operators | Memory comparison of padding data | Memory comparison of strings