Rumah  >  Artikel  >  Java  >  Mengapa Pembahagian Integer dalam Java Menghasilkan Keputusan Terpenggal?

Mengapa Pembahagian Integer dalam Java Menghasilkan Keputusan Terpenggal?

Linda Hamilton
Linda Hamiltonasal
2024-11-17 20:41:02901semak imbas

Why Does Integer Division in Java Produce Truncated Results?

Perangkap Bahagian Integer di Java: Memahami dan Menyelesaikan Keputusan Ralat

Apabila melakukan pembahagian integer di Java, ralat biasa timbul di mana bahagian pecahan daripada hasilnya dibuang, membawa kepada hasil yang tidak dijangka. Isu ini berpunca daripada fakta bahawa pembahagian integer, dalam bentuk lalainya, menganggap kedua-dua operan sebagai integer.

Sebagai contoh, pertimbangkan kod Java berikut:

float res = quantity / standard;

Jika kuantiti dan standard adalah integer, operasi bahagi akan melakukan pembahagian integer, menghasilkan nilai terpotong. Ini berlaku kerana tiada bahagian pecahan dalam hasil bahagi integer.

Untuk menyelesaikan isu ini, seseorang mesti menukar secara eksplisit pengangka atau penyebut kepada jenis titik terapung. Dengan berbuat demikian, operasi bahagi akan dipaksa untuk melakukan pembahagian titik terapung, yang mengekalkan bahagian pecahan hasil.

Salah satu pendekatan ialah membuang pengangka ke apungan, seperti ditunjukkan di bawah:

float res = (float) quantity / standard;

Sebagai alternatif, jika menggunakan literal, anda boleh memastikan penukaran apungan yang betul dengan menambahkan akhiran "f" pada penyebut, seperti yang dilihat di bawah:

float f = 6800f / 500;

Kaedah ini memastikan operasi bahagi dilakukan sebagai operasi titik terapung, mengekalkan bahagian pecahan dan menghapuskan ralat pemotongan yang dihadapi dengan pembahagian integer.

Atas ialah kandungan terperinci Mengapa Pembahagian Integer dalam Java Menghasilkan Keputusan Terpenggal?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn