Liczby zmiennoprzecinkowe, znane również jako liczby rzeczywiste, są używane podczas oceny wyrażeń wymagających precyzji ułamkowej. Na przykład obliczenia, takie jak pierwiastek kwadratowy, lub transcendentalne, takie jak sinus i cosinus, dają wartość, której precyzja wymaga typu zmiennoprzecinkowego. Java implementuje standardowy (IEEE – 754) zestaw typów i operatorów zmiennoprzecinkowych. Istnieją dwa rodzaje typów zmiennoprzecinkowych, zmiennoprzecinkowe i podwójne, które reprezentują odpowiednio liczby o pojedynczej i podwójnej precyzji. Ich szerokość i zakresy pokazano tutaj:
Name Width in Bits Range
double 64 1 .7e–308 to 1.7e+308
float 32 3 .4e–038 to 3.4e+038
pływak
Liczba zmiennoprzecinkowa określa wartość pojedynczej precyzji, która wykorzystuje 32 bity pamięci. Pojedyncza precyzja jest szybsza na niektórych procesorach i zajmuje o połowę mniej miejsca niż podwójna precyzja, ale stanie się nieprecyzyjna, gdy wartości będą bardzo duże lub bardzo małe. Zmienne typu float są przydatne, gdy potrzebujesz komponentu ułamkowego, ale nie wymagają dużego stopnia precyzji.
Oto kilka przykładowych deklaracji zmiennych zmiennoprzecinkowych:
float hightemp, lowtemp;
podwójnie
Podwójna precyzja, jak wskazuje podwójne słowo kluczowe, używa 64 bitów do przechowywania wartości. Podwójna precyzja jest w rzeczywistości szybsza niż pojedyncza precyzja w niektórych nowoczesnych procesorach zoptymalizowanych pod kątem szybkich obliczeń matematycznych. Wszystkie transcendentalne funkcje matematyczne, takie jak sin (), cos () i sqrt (), zwracają podwójne wartości. Kiedy trzeba zachować dokładność w wielu obliczeniach iteracyjnych lub manipulować liczbami o dużej wartości, podwójny wybór jest najlepszym wyborem.