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

Sprawdź, czy liczba jest całkowita

Ostatnio zmodyfikowano 2012-04-09 17:53
Autor Wiadomość
RazzorFlame
» 2012-04-09 13:44:44
Kolego:
C/C++
double a = 0;
double kopia_a = a;
while( 1 )
{
    cout << "Podaj liczbe calkowita: ";
    cin >> a;
    kopia_a = a;
    a =( int ) a; //ewentualnie "a = static_cast<int>(a);"
    if( a == kopia_a ) break;
   
}
//...
P-54168
ptaq
» 2012-04-09 14:03:24
czegos takiego jak
a -( int )
 to raczej nie ma, ja napisalem
a -( int ) a
 i jest to poprostu odjecie od liczby a typu "float" tej samej liczby zrzutowanej na typ "int" czyli bez czesci po przecinku.
P-54170
pekfos
» 2012-04-09 14:57:16
C/C++
#include <cmath>
bool calkowita( double a ) {
    return fmod( a, 1 ) == 0;
}


operator modulo (%) dziala tylko dla intów.
P-54172
ison
» 2012-04-09 15:13:50
@pekfos
co wypisze poniższy program? :)
C/C++
#include <cmath>
#include <cstdio>

bool calkowita( double a ) {
    return fmod( a, 1 ) == 0;
}

int main()
{
    double a = 0.0;
    for( int i = 0; i < 10; ++i ) {
        a += 0.1;
        printf( "%.2lf\n", a );
    }
    if( calkowita( a ) ) printf( "calkowita\n" );
    else printf( "niecalkowita\n" );
   
}
P-54174
pekfos
» 2012-04-09 15:15:40
@ison:
C/C++
bool calkowita( double a, double p = 1e - 3 ) { //1e-3
    return fmod( a, 1 ) < p || 1 - fmod( a, 1 ) < p;
}
:)
P-54175
Kameleon
Temat założony przez niniejszego użytkownika
» 2012-04-09 15:21:12
Dobra poskładam wasze wypowiedzi i dokończę moje Arcydzieło . Dziękuję . :)
P-54176
ison
» 2012-04-09 17:01:34
@pekfos
dobrze kombinujesz ale to jeszcze nie to ;)
zobacz co zwróci calkowita(-2.4)
P-54178
pekfos
» 2012-04-09 17:05:45
@ison:
..
To dodaj sobie
if( a < 0 ) a *=- 1;
:P

//
C/C++
bool calkowita( double a, double p = 1e - 3 ) { //1e-3
    if( a < 0 ) a *=- 1;
   
    return fmod( a, 1 ) < p || 1 - fmod( a, 1 ) < p;
}
P-54179
1 « 2 » 3
Poprzednia strona Strona 2 z 3 Następna strona