дроби (0.9) и (0.2) делают ошибку усечения при представлении в плавающем или двойном
так что если мы представим 0,9 или 0,2 два раза:
- первый в переменной с плавающей точкой
- второй в двойной переменной
- это значит, что один из них больше другого, а самая большая - двойная переменная
поэтому, если мы вычтем двойное число из числа с плавающей точкой, ожидается, что результат будет положительным
почему этот код напечатан («Положительный»)
float afloat = 0.9;
if ( 0.9 - afloat > 0 ) cout << "Positive" << endl;
else if ( 0.9 - afloat == 0 ) cout << "Equal" << endl;
else if ( 0.9 - afloat < 0 ) cout << "Negative" << endl;
пока этот код напечатан («Негативный») ??
float afloat = 0.2;
if ( 0.2 - afloat > 0 ) cout << "Positive" << endl;
else if ( 0.2 - afloat == 0 ) cout << "Equal" << endl;
else if ( 0.2 - afloat < 0 ) cout << "Negative" << endl;