Saya menulis kode ini:
float b = 3.6;
dan saya mendapatkan ini:
Kesalahan: Masalah kompilasi yang belum terselesaikan: Jenis ketidakcocokan: tidak dapat mengubah dari ganda menjadi mengambang
Mengapa? Apa definisi dari float
?
java
floating-point
t0mkaka
sumber
sumber
f
ke literal'), sedangkan pertanyaan lainnya menanyakan mengapa Anda harus menambahkanf
. Meskipun saling terkait, itu bukan duplikat.Jawaban:
Di Jawa, ketika Anda mengetikkan angka desimal sebagai
3.6
, itu diartikan sebagaidouble
.double
adalah floating point IEEE 754 presisi 64-bit, sedangkanfloat
floating point IEEE 754 presisi 32-bit. Karena afloat
kurang tepat dari adouble
, konversi tidak dapat dilakukan secara implisit.Jika Anda ingin membuat pelampung, Anda harus mengakhiri nomor Anda dengan
f
(yaitu:)3.6f
.Untuk penjelasan lebih lanjut, lihat definisi tipe data primitif dari tutorial Java .
sumber
Lakukan
sumber
Masalahnya adalah bahwa angka desimal default menjadi dua kali lipat. Dan karena double tidak cocok dengan float, Anda harus memberi tahu secara eksplisit bahwa Anda sengaja mendefinisikan float. Jadi pergilah dengan:
sumber
Di JAVA, nilai seperti:
Diasumsikan ganda dan tidak mengambang .
Anda juga dapat melakukan cast untuk menyelesaikan masalah:
float b = (float) 3.5
;Solusi lain:
float b = 3.5f
;sumber