1. Wpiszdouble
Aby pracować z liczbami rzeczywistymi (ułamkowymi), Java używa rozszerzenia double. 8 bytesZajmuje (dwa razy więcej pamięci niż typ int) i może przechowywać wartości do . Dla porównania, typ może przechowywać wartość do .-1.7*10308+1.7*10308int-2*109+2*109
W liczbach rzeczywistych część ułamkowa jest zapisywana po kropce. Na przykład 123,456 lub 2,5 lub 100,00 lub 0,01. Takie liczby nazywane są również liczbami zmiennoprzecinkowymi - liczba zmiennoprzecinkowa - komputerowa nazwa liczb rzeczywistych.
Nawiasem mówiąc, oprócz typu doubleistnieje również typ rzeczywisty float(rozmiar tylko 4 bajty). Jego nazwa pochodzi właśnie od liczby zmiennoprzecinkowej . Nazwa doublepochodzi od podwójnego pływaka . Typ jest dwa razy doublewiększy niż float: 8 bytesvs. 4Nazywana jest również liczbą rzeczywistą podwójnej precyzji .
2. Utwórz zmienną typudouble
Typ podwójny służy do przechowywania liczb rzeczywistych. Aby utworzyć w kodzie zmienną, która będzie mogła przechowywać liczby rzeczywiste, należy użyć polecenia:
double name;
double
Gdzie nazwa to nazwa zmiennej. Przykłady:
| Zespół | Opis |
|---|---|
|
Tworzona jest zmienna rzeczywistaprice |
|
Tworzona jest zmienna rzeczywistaweight |
|
Tworzona jest zmienna rzeczywistalightSpeed |
Podobnie jak w przypadku typu int, możesz użyć skrótu, aby utworzyć wiele zmiennych typu double:
double name 1, name 2, name 3;
double
A nawet od razu przypisz im wartości:
double name 1 = value 1, name 2 = value 2, name 3 = value 3;
double
Przykłady:
| Zespół | Notatka |
|---|---|
|
Wartość jest przechowywana w zmiennej5.0 |
|
Wartość jest przechowywana w zmiennej2.0 |
|
3. Przypisanie liczb całkowitych i rzeczywistych
Byłoby źle, gdyby liczby całkowite można było przypisywać tylko do zmiennych typu int, a liczby rzeczywiste tylko do zmiennych typu double. Chciałbym móc przekonwertować jedną liczbę na drugą. A w Javie jest taka możliwość.
Po pierwsze, zmiennym typu doublemożna przypisywać zarówno liczby rzeczywiste, jak i całkowite. Kiedy przypisuje się liczby całkowite, są one po prostu konwertowane na liczby rzeczywiste. Chociaż czasami możliwa jest niewielka utrata dokładności.
| Zespół | Notatka |
|---|---|
|
Wartość jest przechowywana w zmiennej5.0 |
|
Wartość jest przechowywana w zmiennej2.0 |
|
xWartość jest przechowywana w zmiennej1000000.0 |
Po drugie, jeśli w jakimś wyrażeniu występuje liczba całkowita i liczba rzeczywista, liczba całkowita jest najpierw konwertowana na liczbę rzeczywistą, a dopiero potem wchodzi w interakcję z inną liczbą rzeczywistą.
| Zespół | Notatka |
|---|---|
|
xWartość jest przechowywana w zmiennej5000.0 |
|
Numer zostanie wyświetlony na ekranie.10 |
|
Numer zostanie wyświetlony na ekranie.10.0 |
I wreszcie, możliwe jest przypisanie intliczb rzeczywistych do zmiennych typu. Część ułamkowa liczby jest odrzucana - liczba jest zaokrąglana w dół do liczby całkowitej.
Ponadto kompilator wymaga, aby programista wyraźnie udokumentował ten fakt (aby inni programiści zrozumieli, że część ułamkowa jest tutaj odrzucana). Ogólna postać tego wyrażenia w kodzie jest następująca:
integer_variable = (int)(real_number);
intliczb rzeczywistych
Przykłady:
| Zespół | Notatka |
|---|---|
|
xWartość jest przechowywana w zmiennej5 |
|
xWartość jest przechowywana w zmiennej5 |
|
xWartość jest przechowywana w zmiennej11 |
4. Dzielenie liczb całkowitych i rzeczywistych w Javie
Podczas dzielenia liczby całkowitej przez liczbę całkowitą reszta jest zawsze odrzucana. Jak więc, powiedzmy, podzielić 5przez, 2aby otrzymać 2.5?
Na pierwszy rzut oka prawidłowa odpowiedź wydaje się brzmieć:
double d = 5 / 2;
Jednak nie wszystko takie proste. Faktem jest, że maszyna Java najpierw obliczy wartość wyrażenia 5 / 2, a dopiero potem przypisze wynik do zmiennej d. I podział 5 / 2będzie zupełny. Te. d będzie zawierał 2lub, mówiąc ściślej,2.0
Prawidłowa opcja jest następująca: przynajmniej jedna z liczb biorących udział w dzieleniu musi być zapisana jako liczba rzeczywista (tj. z kropką):
double d = 5.0 / 2;
double d = 5 / 2.0;
double d = 5.0 / 2.0;
W każdym z tych wyrażeń d będzie zawierać wartość2.5
Ale co ze zmiennymi? A co jeśli mamy taki kod:
int a = 5;
int b = 2;
double d = a / b;
Istnieje tutaj trudne (i oczywiste) rozwiązanie - zmusić maszynę Java do konwersji zmiennych na rzeczywiste poprzez pomnożenie ich przez rzeczywistą jednostkę - 1.0
int a = 5;
int b = 2;
double d = a * 1.0 / b;
Zauważ, że mnożenie i dzielenie mają równy priorytet i są wykonywane od lewej do prawej, więc nie ma znaczenia, gdzie mnożymy przez rzeczywistą jednostkę.
Przykłady:
| Zespół | Kolejność wykonania | Wynik |
|---|---|---|
|
(1.0 * a) / b; |
2.5 |
|
(a * 1.0) / b; |
2.5 |
|
(a / b) * 1.0; |
2.0 |
GO TO FULL VERSION