При работе с числами с плавающей запятой вы должны программировать немного более оборонительно:
if (myArray[i] == 1) {
cout << "this is 1\n";
} else if (myArray[i] == 0) {
cout << "this is 0\n";
} else {
cout << "this is something else, in particular " << myArray[i] << "\n";
}
Это должно дать вам представление о том, что происходит.
Кстати, если вы когда-либо толькохраните значения 1.0f
и 0.0f
в массиве, вполне нормально использовать оператор ==
для сравнения чисел с плавающей запятой.Вы просто должны быть уверены, что то, что вы считаете 1.0
, действительно действительно 1.0
.