Nie można wymyślić lepszego tytułu. Problem jest następujący: Mam "int i", może to być dowolna wartość. moim celem jest przekształcenie "int i" w najbliższą liczbę podzielną przez . Na przykład, mam i = 33. Wtedy zostanie zmieniony na (16x2). Ale jeśli dostanę i = 50, to zostanie zmieniony na (16x3).Java - Jak sprawdzić, czy podział jest liczbą całkowitą czy zmiennoprzecinkową?
Próbowałem wielu rzeczy, na przykład:
for (int x = i; x < 999; x++){
if ((i - x)/16 *is an integer*){
i = i - x;
}
ale nie wiem jak sprawdzić czy jego liczbę całkowitą. Więc może mój poprzedni kod działa, ale po prostu muszę znaleźć sposób na sprawdzenie, czy jest liczbą całkowitą czy zmiennoprzecinkową. Więc ... każda pomoc jest doceniana.
Podział dwóch int będzie zawsze miał wynik końcowy. Zamiast tego możesz użyć modulus ('%'). – GriffeyDog
FWIW, Proponuję wypróbować inne podejście, aby rozwiązać ten problem. To podejście do szukania liczby, którą można odjąć od i, aby uzyskać wielokrotność liczby 16, jest niezwykle nieefektywne. A co, jeśli najbliższa wielokrotność liczby 16 jest większa niż I? – Alex