Eu sei que você não pode confiar na igualdade entre valores de tipo duplo ou decimal normalmente, mas estou me perguntando se 0 é um caso especial.
Embora eu possa entender imprecisões entre 0,00000000000001 e 0,00000000000002, 0 em si parece muito difícil de errar, já que não é nada. Se você for impreciso sobre nada, não é mais nada.
Mas não sei muito sobre esse assunto, então não cabe a mim dizer.
double x = 0.0;
return (x == 0.0) ? true : false;
Isso sempre retornará verdadeiro?