Поскольку в D встроены 80-битные реалы (насколько я могу судить), почему бы вам не просто использовать стандартный подход сравнения со значением эпсилона. Это может быть фиксированное значение, если вы заранее знаете приблизительный диапазон, например, валюта США:
if (abs (a - b) < 1e-6) // effectively equal
или допустимая относительная ошибка, например, 1 часть на миллион среднего значения:
if (abs (a - b) < ((a + b) / 2) / 1e6) // effectively equal
Имейте в виду, я не знаю D, приведенный выше код только для демонстрационных целей.