wartość int w C++
-
- Użytkownik
- Posty: 202
- Rejestracja: 19 wrz 2009, o 19:59
- Płeć: Mężczyzna
- Lokalizacja: małopolska
- Podziękował: 5 razy
wartość int w C++
jak sprawdzić w C++ czy dana liczba jest całkowita ?
bo wiem, że to jakoś można było zrobić przy pomocy static_cast<>
ale nie za bardzo mogę sobie przypomnieć
bo wiem, że to jakoś można było zrobić przy pomocy static_cast<>
ale nie za bardzo mogę sobie przypomnieć
-
- Moderator
- Posty: 2828
- Rejestracja: 15 cze 2008, o 15:45
- Płeć: Mężczyzna
- Lokalizacja: Seattle, WA
- Podziękował: 3 razy
- Pomógł: 356 razy
wartość int w C++
Zakładam, że liczba jest typu double:
Epsilon to ustalona wartość, która oznacza, jak duże odchyły tolerujemy (ze względu na niedokładność reprezentacji bitowej).Ze static_cast nie korzystaj, bo zbyt duża liczba nie zmieści się w typie int.
Kod: Zaznacz cały
if( fabs (liczba) - floor( fabs(liczba) ) ) < epsilon ){
//jest całkowita
}
-
- Użytkownik
- Posty: 202
- Rejestracja: 19 wrz 2009, o 19:59
- Płeć: Mężczyzna
- Lokalizacja: małopolska
- Podziękował: 5 razy
wartość int w C++
mi to było potrzebne do takiego zadania i tam raczej nie ma dużych liczb (chyba do 100)
i chciałem np. sprawdzić czy 105 jest kwadratem liczby naturalnej
no i właśnie chciałem to zrobić metodą jeśli sqrt(n) jest całkowite to n jest kwadratem
i chciałem np. sprawdzić czy 105 jest kwadratem liczby naturalnej
no i właśnie chciałem to zrobić metodą jeśli sqrt(n) jest całkowite to n jest kwadratem
-
- Moderator
- Posty: 2828
- Rejestracja: 15 cze 2008, o 15:45
- Płeć: Mężczyzna
- Lokalizacja: Seattle, WA
- Podziękował: 3 razy
- Pomógł: 356 razy
wartość int w C++
To powinieneś to zrobić inaczej. Obliczasz pierwiastek, bierzesz podłogę z wyniku, podnosisz do kwadratu i sprawdzasz, czy jest równy wyjściowej liczbie. Przy takich liczbach możesz używać rzutowania (pamiętaj tylko, że ono jest dość wolne).
- Mariusz M
- Użytkownik
- Posty: 6909
- Rejestracja: 25 wrz 2007, o 01:03
- Płeć: Mężczyzna
- Lokalizacja: 53°02'N 18°35'E
- Podziękował: 2 razy
- Pomógł: 1246 razy
wartość int w C++
Można też użyć funkcji ceil() i floor()
czyli sufit i podłoga
No tak czyli już Afish o tym napisał
i dla większych liczb to chyba najlepsze rozwiązanie
czyli sufit i podłoga
No tak czyli już Afish o tym napisał
i dla większych liczb to chyba najlepsze rozwiązanie
wartość int w C++
static_cast służy do rzutowania...sportowiec1993 pisze:bo wiem, że to jakoś można było zrobić przy pomocy static_cast<>