Wątek przeniesiony 2015-05-24 13:14 z Java przez bogdans.

Jak zapisać wielką liczbę za pomocą BigInteger?

0

Witam,

Tak czytam, że dzięki klasie BigInteger można zapisać dowolnie długą liczbę. No i chciałem to przetestować i przemnożyć dwie liczby przez siebie i zobaczyć czy mi to zadziała. W instrukcji jaką posiadam ( książka java podstawy) jest napisane, że aby dokonać konwersji należy zappisać BigInteger a = BigInteger.valueOf(100). Napisałem:

BigInteger x =  BigInteger.valueOf(7657788788865);

i pojawił się błąd typ int is aut of range.

W jaki sposób mam zapisać jedną długaśną liczbę i potem drugą.

Do mnożenia bym ort! tego multiply. Proszę o pomoc.

0

W Javie domyślnym typem liczbowym jest int (zakres –2,147,483,648 do 2,147,483,647), więc twoja liczba wykracza poza zakres inta - ponieważ używasz BigInteger.valueOf(int). Użyj BigInteger.valueOf(long) - dodaj literkę l do liczby - czyli 7657788788865l (zakres longa to –9,223,372,036,854,775,808 do 9 ,223,372,036,854,775,807).

0
package forumBigInteger;

import java.math.BigInteger;

public class ForumBigInteger {

    public static void main(String[] args) {
        BigInteger a = new BigInteger("7657788788865");
        BigInteger b = new BigInteger("7657788788865");
        BigInteger multiply = b.multiply(a);
        System.out.println("multiply " + multiply.toString());
    }

}
0

Dziękuję. To z literką L mi pomogło. O konstruktorach jeszcze nic nie wiem, ale na pewno się ta odpowiedź przyda.

0

Do czego służy ten zapis "package forumBigInteger"

Przekopiowałem wszystko bez tego zapisu i też działa, dlatego pytam po co on jest i czy jest potrzebny?

0

ojejku . Tak używam NetBeans z przyzwyczajenia. Jakoś tak mało uruchamiam przykładów z konsoli java (w sumie to chyba ostanio na studiach :( ). Takie już przyzwyczajenie, ale przyznaję się szczerze ze juz Scale trenuje w konsoli i w IDE . Nie umiem jeszcze wszystkiego.
Tak wywołanie obiektów klasy z IDE jest różne niż w konsoli.

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