Rumah > Java > javaTutorial > Mengapa 1 / 3 Sama dengan 0 dalam Bahagian Integer Java?

Mengapa 1 / 3 Sama dengan 0 dalam Bahagian Integer Java?

Barbara Streisand
Lepaskan: 2024-12-28 07:49:10
asal
240 orang telah melayarinya

Why Does 1 / 3 Equal 0 in Java Integer Division?

Bahagian Int: Membongkar Kebenaran Di Sebalik 1/3 == 0

Pembahagian integer di Jawa boleh menjadi konsep yang membingungkan, terutamanya apabila ia melibatkan nilai perpuluhan. Persoalannya ialah mengapa keputusan 1 / 3 sama dengan 0, walaupun kami menjangkakan ia menjadi 0.333...

Menyingkap Aritmetik

Dalam hal ini kes, kedua-dua operan (1 dan 3) adalah integer, yang bermaksud aritmetik integer digunakan secara lalai. Walaupun mengisytiharkan pembolehubah hasil (g) sebagai dua kali ganda, penukaran tersirat berlaku selepas pembahagian.

Selok-belok Pembahagian Integer

Bahagian integer, berbanding terapung- pembahagian mata, membundarkan keputusan ke arah sifar. Hasil pembahagian sebenar, 0.333..., seterusnya dibundarkan ke bawah kepada 0. Pemproses pada dasarnya menganggap bahagian perpuluhan seolah-olah ia tidak ada.

Aritmetik Titik Terapung: Kisah Berbeza

Jika kedua-dua operan disediakan sebagai nombor titik terapung (3.0 dan 1.0), aritmetik titik terapung diutamakan. Ini menghasilkan nilai pecahan yang dijangkakan sebanyak 0.333.... Ambil perhatian bahawa walaupun hanya operan pertama ialah apungan (cth., 3.0 dan 1), aritmetik titik terapung masih digunakan.

Praktikal Penyelesaian

Untuk mendapatkan hasil perpuluhan, adalah perlu untuk melaksanakan pembahagian titik terapung secara eksplisit. Ini boleh dicapai dengan menghantar kedua-dua operan kepada beregu atau terapung:

public static void main(String[] args) {
    double g = (double) 1 / 3; // Explicitly cast to double
    System.out.printf("%.2f", g);
}
Salin selepas log masuk

Sebagai alternatif, seseorang boleh menggunakan kelas BigDecimal untuk operasi berangka yang lebih tepat.

Atas ialah kandungan terperinci Mengapa 1 / 3 Sama dengan 0 dalam Bahagian Integer Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan