Wynikiem dzielenia jest -0 - jak uzyskać 0 bez minusa?

0

Witam, rozpocząłem naukę C++ i napisałem program rozwiązujący metodą wyznaczników układ dwóch równań z dwiema niewiadomymi i podczas podawania danych 1 2 2 1 -2 2 otrzymuję wynik x=2 a y=-0. Powiedzcie mi jak zrobić aby y=0 a nie minus 0. Dziękuję za pomoc.

#include <iostream>
#include <cstdlib>

using namespace std;

int main()
{
  float a,b,c,d,e,f,W,Wx,Wy;

  //cin >> a >> b >> c >> d >> e >> f;

  cin>>a;

  cin>>b;

  cin>>c;

  cin>>d;

  cin>>e;

  cin>>f;

  W  = a*e-d*b;
  Wx = c*e-b*f;
  Wy = a*f-c*d;
  
  if (W!=0)
  {
  	cout  << "x=" << Wx/W << endl; 
    cout   << "y=" << Wy/W << endl;
  }
  else
    
      if ((Wx==0 && Wy==0))      
          cout << "nieoznaczony";        
      else
          cout << "sprzeczny";                

	
  return 0;
}
0
  1. Liczby zmiennoprzecinkowe powinieneś przyrównywać do epsilonu, nigdy żadną nierównością w rodzaju W != 0.
  2. ... poza liczbami specjalnymi typu -0 - jeśli aż tak Ci zależy, możesz sobie dopisać warunek czy jest różne od -0, natomiast generalnie rzecz biorąc ten minus nie ma wpływu na nic. Być może zamiana na double także pozwoli to anulować.

1 użytkowników online, w tym zalogowanych: 0, gości: 1