Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

problem z dodawaniem

Ostatnio zmodyfikowano 2012-11-19 08:28
Autor Wiadomość
dzwigar
Temat założony przez niniejszego użytkownika
problem z dodawaniem
» 2012-11-18 17:32:43
Witam Wszystkich.

Mam pewien wycinek kodu który nie działa jak trzeba.
C/C++
if(( la + lb ) == l )

     cout << " la + lb jest równe l " << endl;

else if(( la + lb ) != l )

     cout << " la + lb jest różne od l " << endl;

Problem jest wtedy jak do zmiennuch przypisze liczby typu 0.2 0.7 itp..
lecz nie ma problemu jak przypisze 2.5 , 7.4 itp...
 Proszę Was o pomoc.
Dodam że liczmy są typu double.

A dla przykładu podam wartosci zmiennych.

la =0.2
lb = 2.3
l = 2.5
dostaje
 cout <<" la + lb jest różne od l "<<endl;
P-69494
Mrovqa
» 2012-11-18 17:41:40
Zmiana dokładności liczby zmiennoprzecinkowej.
Tam dalej wyjaśniłem w czym rzecz - nie zakodujesz każdej wartości pomiędzy 0.0 a 1.0 w typie zmiennoprzecinkowym (z prostego powodu - tych liczb jest nieskończenie wiele, a tyle pamięci niestety nie mamy).
P-69495
dzwigar
Temat założony przez niniejszego użytkownika
» 2012-11-18 17:52:15
Nie zabardzo romumiem.
Jeśli ja określilem liczbe la na 0.2 to jeju wartość jest 0.2
Czyli ja mam dodać dwie liczby typu double np. 0.2 + 2.5 aby wynik był 2.7 ?
P-69499
ison
» 2012-11-18 19:02:41
C/C++
if( fabs( la + lb - l ) < eps ) printf( "rowne l\n" );
else printf( "nierowne l\n" );
za eps wstaw sobie dowolną małą liczbę jak np 10^-5
P-69503
dzwigar
Temat założony przez niniejszego użytkownika
» 2012-11-18 20:56:35
Wkleję moją funkcje która działa poprawnie jak odkomentuje  cout<<suma<<endl;
a działa nie poprawnie jak zakomentuje.
C/C++
void rure()
{
    double l, wynik;
    double la;
    double lb;
    double suma;
    system( "cls" );
   
    cout << "                 oooooooooooooooooooooooooooooooooooooooooo" << endl;
    cout << "                 o                                        o" << endl;
    cout << "                 o  Obliczenie wytrzymalosci rury ktora   o" << endl;
    cout << "                 o       obciaza rusztowanie.             o" << endl;
    cout << "                 o                                        o" << endl;
    cout << "                 o                                        o" << endl;
    cout << "                 oooooooooooooooooooooooooooooooooooooooooo" << endl;
    cout << "" << endl;
    cout << "" << endl;
   
    cout << "   Podaj dlugosc rury                   " << endl;
    cin >> l;
    cout << "   Podaj odleglosc rury od podparcia A  " << endl;
    cin >> la;
    cout << "   Podaj odleglosc rury od podparcia B  " << endl;
    cin >> lb;
    //cout <<"3. Podaj obciazenie na rure             :"<<"\n\n\n";
    //cin>>kn;
    wynik =(( 0.768 * l ) /( la * lb ) );
    suma =( la + lb );
    cout << suma << endl;
    if(( suma ) == l )
   
    {
       
       
        cout << "                 oooooooooooooooooooooooooooooooooooooooooo" << endl;
        cout << "                 o                                        o" << endl;
        cout << "                 o      Rura wytrzyma obciazenie rzedu    o" << endl;
        cout << "                 o                                        o" << endl;
        cout << "                                " << wynik << " kN          " << endl;
        cout << "                 o                                        o" << endl;
        cout << "                 oooooooooooooooooooooooooooooooooooooooooo" << endl;
       
    }
   
    else if(( la + lb ) != l )
   
         cout << " ERROR - Dlugosc A + B nie moze byc wieksza lub mniejsza niz dlugosc rury" << endl;
   
   
   
    //system("pause");
    _getch();
    system( "cls" );
   
}
P-69519
Mrovqa
» 2012-11-19 08:28:07
C/C++
else if(( la + lb ) != l )
Przeczytałeś post @isona? Zdaję mi się, iż po prostu go olałeś.
P-69527
« 1 »
  Strona 1 z 1