Сравните два числа с плавающей запятой

#include <stdbool.h>

bool Equality(double a, double b, double epsilon)
{
  if (fabs(a-b) < epsilon) return true;
  return false;
}

Я пробовал этот метод для сравнения двух двойников, но у меня всегда возникают проблемы, так как я не знаю, как выбрать эпсилон , на самом деле я хочу сравнить маленькие числа (6 6 цифр после десятичной точки), например 0,000001 . Я пробовал с некоторыми числами, иногда получаю 0,000001! = 0,000001 , а иногда 0,000001 == 0,000002 Есть ли другой метод, кроме сравнения с эпсилоном?

Моя цель - сравнить два двойных числа (которые в моем случае представляют время). Переменная t, которая представляет время в миллисекундах, является двойным. Он увеличивается другой функцией 0,000001, затем 0,000002 и т. Д. Каждый раз при изменении t, я хочу проверить, равна ли она другой переменной типа double tt, в случае tt == t, у меня есть некоторые инструкции для выполнения ..
Спасибо за вашу помощь

10
задан Shweta 13 May 2011 в 10:46
поделиться