متغییر dx شما از نوع double هست، و توی شرطتون، شما دارید ضرب یک double در int رو که نتیجش double هست رو با عدد 2 که unsigned int هست مقایسه میکنید. این کارتونو راه میندازه:

if (static_cast<unsigned int>(i * dx) == 2)