что не так с моим кодом? его конвертируют дюймы и ноги и сравнивают их в метрах. если я вхожу 12 дюймов и 1 для ног, это говорит о том, что цифры не равны. Это известная проблема с g ++? Может ли кто-нибудь объяснить это мне?функция сравнения в g ++
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
double in, ft, m1, m2;
cin >> in >> ft;
m1 = in * 0.0254;
m2 = ft * 0.3048;
cout << m1 << '\t' << m2 << '\n' << endl;
// to show that both numbers are equal
if (m1 == m2) cout << "yay";
else cout << "boo";
}
Есть ли у кого-нибудь еще эта проблема?
Возможный дубликат [Самый эффективный способ для поплавка и двойного сравнения] (http: // stackoverflow.com/questions/17333/most-effective-way-for-float-and-double-comparison) – NathanOliver
Что каждый компьютерный ученый должен знать о арифметике с плавающей точкой: http://docs.oracle.com/cd/E19957-01 /806-3568/ncg_goldberg.html –
Сколько цифр вы напечатали? –