BigInteger (3) – metody rzutujące
byte byteValueExact()
Metoda zapisuje BigInteger
jako byte
. Jeśli zakres BigInteger
przekracza zakres byte
– metoda wyrzuca wyjątek ArithmeticException
.
double doubleValue()
Metoda zapisuje BigInteger
jako double
. Jeżeli BigInteger
nie mieści się w double
nie jest wyrzucany wyjątek, a w otrzymanym double
znajduje się przypadkowy zapis rejestrów pamięci.
float floatValue()
Metoda zapisuje BigInteger
jako float
. Jeżeli BigInteger
nie mieści się we float
nie jest wyrzucany wyjątek, a w otrzymanym float
znajduje się przypadkowy zapis rejestrów pamięci.
int intValue()
Metoda zapisuje BigInteger
jako int
. Jeżeli BigInteger
nie mieści się w int
nie jest wyrzucany wyjątek, a w otrzymanym int
znajduje się przypadkowy zapis rejestrów pamięci.
int intValueExact()
Metoda zapisuje BigInteger
jako int
. Jeśli zakres BigInteger
r przekracza zakres int
– metoda wyrzuca wyjątek ArithmeticException
.
long longValue()>
Metoda zapisuje BigInteger
jako long
. Jeżeli BigInteger
nie mieści się w long
nie jest wyrzucany wyjątek, a w otrzymanym long
znajduje się przypadkowy zapis rejestrów pamięci.
long longValueExact()
Metoda zapisuje BigInteger
jako long
. Jeśli zakres BigInteger
przekracza zakres long
– metoda wyrzuca wyjątek ArithmeticException
.
short shortValueExact()
Metoda zapisuje BigInteger
jako short
. Jeśli zakres BigInteger
przekracza zakres short
– metoda wyrzuca wyjątek ArithmeticException
.
Przykład
Wszystkich metod używa się podobnie.
Klasa BigInt10
package java_math_biginteger; import java.math.*; public class BigInt10 { public static void main(String[] args) { BigInteger big1 = new BigInteger("12345678912"); Util.print(big1); int big2 = big1.intValue(); Util.print(big2); int big3 = big1.intValueExact(); Util.print(big3); } }
Wynik
Po uruchomieniu na konsoli otrzymujemy:
12345678912 -539222976 Exception in thread "main" java.lang.ArithmeticException: BigInteger out of int range at java.base/java.math.BigInteger.intValueExact(BigInteger.java:4787) at klasyrozne/java_math_biginteger.BigInt10.main(BigInt10.java:11)
Druga linia pokazuje śmietnik (przypadkowe wartości) pobrane z pamięci.
Trzecia linia pokazuje wyrzucony wyjątek, ostrzegający, że zakres liczby big1
nie mieści się w zakresie typu int
.