0
Номера с плавающей запятой не являются точными из-за его ограниченной точности. Мой вопрос: является ли умножение коммутативным в вычислении компьютера с плавающим числом?Перемножается с плавающей запятой?
Например
double a = ..;
double b = ...;
double c = a * b;
double d = b * a;
if (c == d)
cout << "Yes, great floating";
Вы имеете в виду «умножение с плавающей запятой»? Если это так, это может быть актуальным: [Является ли умножение всегда коммутативным в неточной арифметике с плавающей запятой?] (Http://stackoverflow.com/q/5007400/953482) – Kevin
Если оба 'a' и' b' являются NaN, вы бы 't обязательно получить тот же NaN, если вы переключите операнды (но это довольно странно, на что можно положиться) – harold
@harold И вообще, если результат «NaN», то «a * b» и «b * a» будут сравнивать неравномерны, даже если оба результата имеют одинаковое представление. –