CodeGym /Java Blog /Acak /Kata Kunci Java Float
John Squirrels
Level 41
San Francisco

Kata Kunci Java Float

Dipublikasikan di grup Acak
Pada titik tertentu dalam perkembangan teknologi komputasi, menjadi jelas bahwa unit pemrosesan pusat memerlukan perangkat keras untuk memproses bilangan floating point. Saat ini, semua arsitektur komputer dapat bekerja secara efektif dengan angka-angka tersebut. Tentu saja, dalam bahasa pemrograman, Anda juga tidak dapat melakukannya tanpa tipe data yang sesuai. Ada dua tipe data floating point di Java: float dan double. Kata kunci Java Float mendefinisikan bilangan real yang menempati 32 bit dalam memori. Kami akan membicarakan angka-angka tersebut di artikel ini.

Angka titik mengambang. Bagaimana bilangan real disimpan di komputer?

Untuk menyimpan bilangan real dalam memori komputer, sejumlah bit tertentu dialokasikan. Bilangan real disimpan sebagai tanda (plus atau minus), mantis, dan eksponen. Apa yang dimaksud dengan mantissa dan eksponen paling baik dijelaskan dengan sebuah contoh. Perkiraan massa bulan adalah 7* 1022. Di sini 7 adalah belalang, dalam 22 eksponen. Saat menampilkan angka besar atau sebaliknya, angka sangat kecil di layar, Anda dapat melihat entri seperti 7E22. Ini adalah bilangan floating point, dan 7 adalah mantis, dan 22 adalah eksponen atau pangkat 10. Notasi ini disebut notasi eksponensial.

Kata Kunci Java float dan Kata Kunci Ganda Java

Nilai float (Bilangan floating point atau bilangan real) di Java diwakili oleh tipe float dan double . Kata kunci inilah yang digunakan untuk menyimpan nilai hingga tanda tertentu setelah koma. ganda adalah bilangan yang mempunyai ketelitian ganda, sedekat mungkin dengan nilai yang diberikan atau diperoleh dari hasil perhitungan. Java Double digunakan untuk semua perhitungan matematika (akar kuadrat, sinus, kosinus, ..), serta untuk semua perhitungan yang memerlukan akurasi tertentu. tipe data float digunakan untuk tipe floating point yang kurang tepat. Ini sangat jarang digunakan untuk menghemat memori. Di bawah ini kami memiliki tabel dengan informasi utama tentang float dan double, serta perbedaannya.
Mengambang Dobel
Utama Float adalah nilai presisi tunggal Ini adalah nilai presisi ganda
Ukuran Bawaan 4 byte (32 bit) 8 byte (64 bit)
Nilai Bawaan 0,0f 0,0
Jangkauan dari 1.4e–045 hingga 3.4e+038 dari 4,9e–324 hingga 1,8e+308
Untuk apa digunakan Untuk menghemat memori untuk bekerja dengan bilangan pecahan secara relatif akurat
Jadi kata kunci Float berarti angka, nilai presisi tunggal yang membutuhkan memori 32 bit atau 4 byte. Pada beberapa prosesor, bekerja dengan angka seperti itu lebih cepat, dan, seperti telah disebutkan, angka tersebut memakan lebih sedikit ruang jika dibandingkan dengan angka dengan presisi ganda. Namun, kecepatannya tidak bisa dikatakan dengan pasti. Katakanlah beberapa prosesor modern memproses angka presisi dua kali lipat lebih cepat.

Java Float dan Deklarasi Ganda

Anda dapat mendeklarasikan bilangan bertipe ganda dengan cara yang sama seperti bilangan bertipe lainnya:

double myDouble = 2.7;
Namun, jika Anda merepresentasikan bilangan floating point dengan cara ini, kompiler akan meminta Anda mengubah jenis bilangan tersebut menjadi dua kali lipat. Berikut adalah contoh variabel float yang salah :

public class FloatExample {
   public static void main(String[] args) {
//double and float variables 
       double myDouble = 2.7;
       float myFloat = 3.14;
   }
}
Inilah yang terjadi jika Anda menjalankan program ini:

Error:(4, 25) java: incompatible types: possible lossy conversion from double to float
Faktanya adalah tidak diinginkan menggunakan angka float, dan ini harus dilakukan hanya untuk menghemat memori. Semua bilangan pecahan nyata di Java adalah Double secara default, dan sintaksis bahasanya juga menekankan hal ini. Jika Anda benar-benar ingin bekerja dengan tipe float, Anda perlu menentukannya secara eksplisit dengan f yang mengakhiri nomornya.

public class FloatExample {
   public static void main(String[] args) {
//double and float variables
       double myDouble = 2.7;
       float myFloat = 3.14f;
   }
}
Omong-omong, bilangan float dan double dapat ditulis dalam bentuk eksponensial.

float myFloat2 = 2E22f;
double myDouble2 = 3e10;
Jika Anda menggunakan angka yang cukup besar dalam representasi "normal", Java akan segera menampilkannya dalam bentuk eksponensial. Mari kita ambil contoh:

public class FloatExample {
   public static void main(String[] args) {
//float variables
               float myFloatNumber1=2182818284590.45f;
               float myFloatNumber2=19822612787260.141592181f;
               System.out.println("myFloatNumber1 = " + myFloatNumber1);
               System.out.println("myFloatNumber2 = " + myFloatNumber2);
       System.out.println("myFloatNumber1 + myFloatNumber2 = " + myFloatNumber1 + myFloatNumber2);
           }
       }
Hasil kerja program ini adalah sebagai berikut:
myFloatNumber1 = 2.1828183E12 myFloatNumber2 = 1.98226121E13 myFloatNumber1 + myFloatNumber2 = 2.1828183E121.98226121E13

Contoh bilangan float dan double khusus

Ada tiga angka floating point khusus dalam bahasa Java, yang digunakan untuk menunjukkan luapan dan kesalahan. Di sini mereka:
  • Tak terhingga positif adalah hasil pembagian bilangan positif dengan 0. Diwakili oleh konstanta Double.POSITIVE_INFINITY dan Float.POSITIVE_INFINITY .

  • Negatif tak terhingga adalah hasil pembagian bilangan negatif dengan 0. Diwakili oleh konstanta Double.NEGATIVE_INFINITY dan Float.NEGATIVE_INFINITY .

  • NaN (bukan angka) mewakili perhitungan 0/0 atau akar kuadrat dari angka negatif. Diwakili oleh konstanta Double.NaN dan Float.NAN .

Berikut adalah contoh penggunaan bilangan floating point khusus ini:

public class FloatExample {
   public static void main(String[] args) {
       int myInt = 1;
       float zero = 0.0f;
       double negZero = -0.0;
       double negativeInfinity = Double.NEGATIVE_INFINITY;
       double positiveInfinity = Float.POSITIVE_INFINITY;

       System.out.println(myInt / zero);
       System.out.println(myInt / negZero);
       System.out.println(zero == negZero);
       System.out.println(negativeInfinity * 0);
       System.out.println(positiveInfinity+negativeInfinity);

   }
}
Hasilnya adalah:
Tak terhingga -Tak terhingga benar NaN NaN

Apakah presisi ganda cukup?

Faktanya, meskipun tipe Ganda memiliki presisi ganda , menggunakan angka floating point, misalnya, dalam perhitungan keuangan, bukanlah ide terbaik karena kesalahan pembulatan tidak dapat diterima. Jadi, coba tampilkan output dari program berikut di layar.

public class FloatExample {
   public static void main(String[] args) {
       System.out. println( "2.0 - 1.1 = " + (2.0 - 1.1));
   }
}
Anda akan mendapatkan hasil sebagai berikut:
2,0 - 1,1 = 0,8999999999999999
Masuk akal untuk berasumsi bahwa hasilnya adalah 0,9. Namun, kesalahan seperti itu cukup umum dan terkait dengan representasi angka biner internal. Misalnya, kita tidak dapat menyatakan nilai pasti dari ⅓ sebagai pecahan desimal; tentu saja, ada batasan serupa dalam sistem biner. Jika tugas memerlukan penghapusan kesalahan pembulatan, Java memiliki kelas BigDecimal untuk ini.
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION