Middle
248
Эки сандарды (float) теңдик үчүн кандай салыштырса болот?
AIден жооп
sobes.tech AI
Жалпы алганда, ондук бөлүштүрүүчү сандарды катуу теңдик (==) менен салыштырбоо сунушталат, анткени алардын ички көрсөтүлүшүнүн өзгөчөлүктөрү жана мүмкүн болгон тегерекчелүү каталар бар. Анын ордуна, төзүмдүүлүк (epsilon) менен салыштыруу колдонулат:
#include <cmath> // std::fabs үчүн
bool бирдей_болуу_float(float a, float b, float epsilon = 0.00001f) {
// Сандардын абсолюттук айырмасын белгиленген төзүмдүүлүк менен салыштырабыз
return std::fabs(a - b) < epsilon;
}
// Колдонуу мисалы:
// float x = 0.1f + 0.2f;
// float y = 0.3f;
// if (бирдей_болуу_float(x, y)) {
// // Сандар бирдей деп эсептелет
// }
epsilon маанисин тандоо тактыкка болгон конкреттүү талаптарга көз каранды.