logo

Float ve Double Java

Java'da, Java.

struct dizi c programlama

İki tür Kayan Nokta veri türü vardır:

  • kayan nokta Veri Türü
  • çift ​​Veri Türü

Hem float hem de double, ondalık değerleri saklayan kayan noktalı sayıları temsil eder.

Kayan Nokta Veri Türü Değerler Boyut (bit)* Depolama Gereksinimi (bayt) Varsayılan değer Kesinlik Ondalık basamak Menzil Kesinlik
batmadan yüzmek IEEE 754 Kayan Nokta 32 4 0,0f Bekar 6 ondalık basamak 3.4e-038 ila 3.4e+038 Düşük
çift IEEE 754 Kayan Nokta 64 8 0.0 gün Çift 15 ondalık basamak 1,7e-308'den 1,7e+308'e Yüksek

*Boyut bitleri aşağıdakileri içerir:

Bitler batmadan yüzmek çift
İmza 1 1
Üs 8 on bir
Mantis 23 52

Tek hassasiyet: Bu oluşmaktadır bir işaret biti (S), sekiz üs bitleri (E) ve yirmiüç mantis bitleri (M).

Çift Hassasiyet: Bu oluşmaktadır bir işaret biti (S), on bir üs bitleri (E) ve elli iki mantis bitleri (M).

Float ve Double Java

kayan nokta Veri Türü

32 bit, tek duyarlıklı IEEE 754 (Kayan Nokta Aritmetiği Standardı) kayan noktalı sayıdır. Yani 6-7 ondalık basamak hassasiyeti veriyor. Double veri tipine göre daha az hafıza gerektirdiğinden hafızayı etkin kullanmak istiyorsak kullanılır. Float değerini tanımlamak için f veya F son ekini kullanmalıyız. Varsayılan değeri 0.0f'dir. Varsayılan olarak, kayan sayılar Java'da double olarak değerlendirilir.

Örneğin, bir kayan sayıyı şu şekilde tanımlarsak:

 float height = 167.7 

Yukarıdaki float değişkeninin bildirimi derleme hatası verir. Hatayı f veya F sonekini ekleyerek düzeltebiliriz.

 float height = 167.7f or float height = 167.7F 

çift ​​Veri Türü

Double veri türü, 64 bit çift duyarlıklı IEEE 754 kayan noktalı sayıdır. Yani 15-16 ondalık basamak hassasiyeti veriyor. Float veri türüne göre daha fazla bellek tüketir. Ondalık değerleri saklamak için kullanılır. Varsayılan değeri 0.0d'dir. D veya D sonekini eklemek isteğe bağlıdır. Örneğin:

sonu zenci
 double price = 987.90D or double price = 987.90d or double price = 987.90 

float vs double Veri Türü

Double veri türü, float veri türünden daha doğrudur. Aşağıdaki tablo, float ve double veri türleri arasındaki farkları özetlemektedir.

Temel kayan nokta Veri Türü çift ​​Veri Türü
Hafıza İşgal eder 4 bayt. İşgal eder 8 bayt.
Kesinlik Onun doğruluğu Düşük . Onun doğruluğu yüksek .
Kesinlik şöyle: Tek hassasiyet (6-7 ondalık basamak). şöyle: çift ​​duyarlıklı (15-16 ondalık basamak).
Kullanılan anahtar kelime batmadan yüzmek Anahtar kelime, kayan sayıyı tanımlamak için kullanılır. çift Anahtar kelime çift duyarlıklı bir sayıyı tanımlamak için kullanılır.
Sarmalayıcı Sınıfı Onun sarmalayıcı sınıfı java.lang.Float. Onun sarmalayıcı sınıfı java.lang.Double.
Varsayılan Veri Türü Java bunu varsayılan kayan nokta sayısı olarak kullanmaz. O varsayılan kayan noktalı sayılar için veri türü.
Veri kaybı Olacak veri kaybı yok float'ı double'a dönüştürürsek. Olacak veri kaybı double'ı float'a çevirirsek.
Kullanım Alanları Nerede kullanılmalı daha az doğruluk gereklidir ve depolama bir kısıtlamadır. Nerede kullanılır daha fazla doğruluk gereklidir ve aynı zamanda daha fazla hassasiyet gerektirir.
sonek Kullanır F veya F bir sonek olarak. Float değişkeni bildiriyorsanız bir sonek eklemeniz zorunludur. Kullanır D veya D bir sonek olarak. Double değişken bildiriyorsanız sonek eklemek isteğe bağlıdır.
Temsil 28.96f veya 28.96F 12.5 veya 12.5D veya 12.5 gün

Float ve double Veri Türü Arasındaki Benzerlikler

  • Gerçek sayılar her iki veri türüyle de temsil edilebilir.
  • Hem float hem de double veri türleri kesin değildir, dolayısıyla yaklaşık değerlerdir.

Java'da hangi kayan noktalı veri türünü kullanmalıyız?

double, float'tan daha kesindir. Bu nedenle, daha kesin ve doğru bir sonuç gerekiyorsa çift kullanın. Double kullanmanın bir başka nedeni de, eğer sayı float tarafından sunulan aralığa uymuyorsa double kullanılmasıdır. Bellek kısıtlamamız varsa float kullanmalıyız çünkü double yerine yarı yer kaplıyor.

Bellek ve alan kısıtlaması olmadığında ve daha fazla hassasiyete ihtiyaç duyulduğunda double over float'ı kullanmanızı öneririz. Bellek bir sorunsa ve 16 hassas ondalık basamakla sonuç gerekli değilse, kayan noktayı tercih etmeniz önerilir.

Aşağıdaki iki Java programları float ve double veri türleri arasındaki farkları açıkça gösterir.

FloatDataTypeExample.java

 public class FloatDataTypeExample { public static void main(String args[]) { float x = 1.0f, y = 3.0f; //defining x and y as float float z = x / y; //divides x by y and stores the result in the variable z System.out.println('x/y = ' + z); //prints the result } } 

Çıktı:

 x/y = 0.33333334 

DoubleDataTypeExample.java

java'da string.format
 public class DoubleDataTypeExample { public static void main(String args[]) { double x = 1.0, y = 3.0; //defining x and y as double double z = x / y; //divides x by y and stores the result in the variable z System.out.println('x/y = ' + z); //prints the result } } 

Çıktı:

 x/y = 0.3333333333333333 

Yukarıdaki iki örnek sayesinde, double veri tipinin çift duyarlıklı bir sayıyı depolamak için daha fazla bellek gerektirdiği ve ayrıca 16 ondalık basamağa kadar daha doğru sonuç verdiği açıktır. Float veri türü tek duyarlıklı sayıları depolamak için daha az yer kaplar ve 6 ondalık basamağa kadar sonuç verir.