CodeGym /Blog Java /Random-PL /Podwójne słowo kluczowe Java
Autor
Alex Vypirailenko
Java Developer at Toshiba Global Commerce Solutions

Podwójne słowo kluczowe Java

Opublikowano w grupie Random-PL
Słowo kluczowe Java double , podobnie jak w każdym innym języku, oznacza komputerowy format reprezentacji liczby zmiennoprzecinkowej, zajmujący 64 bity lub 8 bajtów w pamięci. W tym artykule porozmawiamy o podwojeniu i przyjrzymy się kilku przykładom.

Zmiennoprzecinkowe i obliczenia: krótki opis matematyczny

Liczby ułamkowe są stałe lub zmiennoprzecinkowe. Pierwszą opcję można przedstawić jako zwykły ułamek, w którym licznik (sama liczba) i mianownik (jego współczynnik skalowania) będą liczbami całkowitymi. Na przykład liczba 2,7 to 27 przy współczynniku skalowania 10, 3,14 - 314 przy współczynniku 100. Jednak to podejście nie jest zbyt dokładne z obliczeniowego punktu widzenia, dlatego często używają reprezentacji zmiennoprzecinkowej. W informatyce arytmetyka zmiennoprzecinkowa to specjalna arytmetyczna reprezentacja liczb rzeczywistych jako przybliżenie wspierające kompromis między zakresem a precyzją. Główny format reprezentacji liczb zmiennoprzecinkowych w Javie nosi nazwę float. Jego nazwa pochodzi od zmiennoprzecinkowej. Liczba zmiennoprzecinkowa to 32 bity, z których 1 bit to bit ze znakiem, 8 bitów dla wykładnika i 23 bity dla mantysy. Jego zakres wynosi ±3. 40282347E + 38F czyli 6-7 cyfr znaczących. Nazwa double pochodzi od double float. Thetypu double jest dwa razy większy niż typu float : 8 bajtów w porównaniu do 4. Nazywa się to również liczbą rzeczywistą podwójnej precyzji. Spośród 64 bitów zarezerwowanych dla liczby podwójnej, 1 to bit ze znakiem, 11 bitów to wykładnik, a 52 bity to mantysa. Podwójna frakcja Java przechowuje liczby z zakresu ±1,79769313486231570E + 308, czyli 15-16 cyfr znaczących. Double jest bardziej precyzyjnym formatem. Więc jeśli chcesz przechowywać naprawdę duże liczby, dobrym pomysłem jest preferowanie podwójnego zamiast zmiennoprzecinkowego . Nawiasem mówiąc, metody matematyczne, takie jak sqrt, sin lub cos i wiele innych, zwracają podwójne wartości. Za podwójną precyzję należy jednak zapłacić pamięcią.

Tworzenie podwójnej zmiennej

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;
Gdzie nazwa to nazwa zmiennej.

double myPrice;  //here we create a variable called myPrice
double action; //and here -- action. 
Możesz także użyć skrótu, aby utworzyć wiele zmiennych typu double :

double name1, name2, name3;

Przykłady podwójnych słów kluczowych Java

Podajmy kilka przykładów użycia słowa kluczowego double języka Java w celu utworzenia zmiennej.

double myPrice = 5.0;
double height = 180;
double x = 7.1, y = 3.0;
Tutaj w zmiennej myPrice mamy wartość 5.0, w zmiennej height — 180, w x wpisujemy wartość 7.1, aw y 3.0 .

Podwój jako liczbę całkowitą

W Javie zmiennym typu double można przypisywać zarówno liczby rzeczywiste, jak i całkowite. Podczas przypisywania liczb całkowitych są one po prostu konwertowane na liczby rzeczywiste. Chociaż czasami możliwa jest niewielka utrata dokładności.

double height = 180;
int k = 2; 
int i = 5; 
double myDouble = k*i;
W rzeczywistości zmienna wysokości przechowuje liczbę 180,0, a zmienna myDouble przechowuje liczbę 10,0.

Interakcja podwójna i całkowita

Ponadto, jeśli w jakimś wyrażeniu występuje liczba całkowita i liczba rzeczywista, to liczba całkowita jest najpierw konwertowana na liczbę rzeczywistą, a dopiero potem wchodzi w interakcję z inną liczbą rzeczywistą.

public class DoubleDemo {
   public static void main(String[] args) {
       int k = 2;
       double myDouble1 = 5;
       double myDouble = k*7.0;
       System.out.println(myDouble1);
       System.out.println(k*myDouble1);
       System.out.println(myDouble);
   }
}
W tym przykładzie dane wyjściowe będą następujące:
5,0 10,0 14,0
Mimo że liczba myDouble1 jest oznaczona jako 5, a nie 5.0, Java postrzega tę liczbę jako double , więc faktycznie wygląda jak 5.0. Jeśli pomnożymy int i double, zawsze otrzymamy double , nawet jeśli w rzeczywistości ta liczba jest liczbą całkowitą. Zmiennym typu int możemy przypisać zmienne typu double . Aby to zrobić, musisz dokonać jawnej konwersji typu. Oczywiście część ułamkowa zostanie odrzucona, liczba zostanie obcięta do mniejszej liczby całkowitej.

public class DoubleDemo {
   public static void main(String[] args) {
       double x = 57.789;
       int almostX;
       almostX = (int)x;
       System.out.println(almostX);
   }
}
Dane wyjściowe to:
57
Na koniec porozmawiajmy o podziale. To jest najciekawsze. Być może spotkałeś się już z tym, że jeśli podzielisz dwie liczby całkowite, to w wyniku dzielenia otrzymamy liczbę całkowitą, nawet jeśli nie są one przez siebie równo podzielne:

public class DoubleDemo {
   public static void main(String[] args) {
       double myDouble = 7/2;
       System.out.println(myDouble);
   }
}
Wynik to:
3.0
Dzieje się tak dlatego, że maszyna Java najpierw dzieli dwie liczby całkowite (i otrzymuje 3), a następnie przechowuje tę wartość w zmiennej typu double, uzyskując w rezultacie 3,0. Aby uzyskać nie liczbę całkowitą, ale zwykły podział, musisz oszukiwać. Na przykład napisz jedną z liczb jako liczbę rzeczywistą (wtedy całe wyrażenie jest automatycznie konwertowane na liczbę rzeczywistą). Jeśli pracujemy ze zmiennymi typu integer, to można je pomnożyć przez 1,0. Nie zmieni to wartości, ale zmieni typ zmiennej z int na double .

public class DoubleDemo {
   public static void main(String[] args) {
       double myDouble = 7.0/2;
       int x = 5;
       int y = 2;
       System.out.println(myDouble);
       System.out.println(x*1.0/y);
   }
}
Dane wyjściowe to:
3,5 2,5
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION