Rumah > pembangunan bahagian belakang > tutorial php > Analisis sebab mengapa 8%3 sama dengan 0 dalam PHP

Analisis sebab mengapa 8%3 sama dengan 0 dalam PHP

PHPz
Lepaskan: 2024-01-26 09:50:01
asal
735 orang telah melayarinya

Analisis sebab mengapa 8%3 sama dengan 0 dalam PHP

Terangkan mengapa 8%-3 bersamaan dengan 0 dalam PHP

Dalam PHP, jika kita cuba mengira 8%-3 , kita akan mendapat nilai yang menghasilkan 0 . Ini mungkin mengelirukan sesetengah pembangun kerana dalam matematik kita menjangkakan bahawa hasil penilaian ungkapan ini sepatutnya 2. Walau bagaimanapun, dalam PHP, terdapat beberapa peraturan khas untuk menggunakan operator selebihnya (%), yang mungkin membawa kepada beberapa hasil yang luar biasa.

Mula-mula, mari kita fahami definisi operator baki dalam matematik. Operator baki digunakan untuk mengira baki selepas membahagikan satu nombor dengan nombor lain. Dalam matematik, operator ini intuitif untuk mengira integer positif. Sebagai contoh, apabila mengira baki 8 dibahagikan dengan 3, kita mendapat 2. Ini kerana 8 boleh dibahagi dengan 3 dua kali, meninggalkan baki 2.

Walau bagaimanapun, dalam PHP, ini tidak selalu berlaku. Apabila pengendali selebihnya digunakan pada nombor negatif, hasilnya mungkin negatif, sifar atau positif, bergantung pada tanda-tanda dividen dan pembahagi. Khususnya, apabila dividen ialah nombor positif dan pembahagi ialah nombor negatif, peraturan pengiraan pengendali selebihnya adalah seperti berikut:

  1. Jika dividen boleh dibahagikan dengan pembahagi, hasilnya adalah nombor negatif.

    • Sebagai contoh, hasil 10 % -3 ialah -2. Oleh kerana 10 boleh dibahagi dengan -3, bakinya ialah -2.
  2. Jika dividen tidak membahagikan pembahagi, tetapi dividen positif, hasilnya adalah nombor positif.

    • Sebagai contoh, hasil 8 % -3 ialah 2. Oleh kerana 8 tidak boleh dibahagikan dengan -3, bakinya ialah 2.
  3. Jika dividen tidak membahagikan pembahagi tetapi dividen negatif, hasilnya negatif.

    • Sebagai contoh, -8 % -3 menghasilkan -2. Oleh kerana -8 tidak boleh dibahagikan dengan -3, bakinya ialah -2.

Seterusnya, mari analisa mengapa keputusan 8%-3 dalam PHP ialah 0. Mengikut peraturan di atas, kita boleh tahu bahawa 8 ialah nombor positif dan -3 ialah nombor negatif, jadi hasilnya haruslah nombor positif. Walau bagaimanapun, semasa proses pengiraan khusus, PHP melakukan beberapa pemprosesan dalaman.

Apabila mengira 8%-3, PHP akan terlebih dahulu mengira integer terbesar n supaya n darab -3 adalah kurang daripada atau sama dengan 8. Dalam contoh ini, n=2 kerana 2 kali -3 sama dengan -6, iaitu kurang daripada atau sama dengan 8. PHP kemudian menambah -6 hingga 8 untuk mendapatkan hasil akhir 2. Jadi, hasilnya ialah 2 dan bukan 0.

Lalu kenapa keputusannya 0? Ini kerana pengendali selebihnya juga dipengaruhi oleh jenis data dividen. Jika dividen ialah integer, seperti 8, hasilnya ialah 2. Walau bagaimanapun, jika dividen adalah nombor titik terapung, seperti 8.0, maka hasilnya menjadi 0.

Ini kerana apabila dividen adalah nombor titik terapung, pengiraan di dalam PHP akan menukarkannya kepada integer, iaitu menukar 8.0 kepada 8, dan kemudian melakukan pengiraan mengikut peraturan yang dinyatakan sebelum ini. Oleh kerana 8 tidak membahagikan -3, ia dinilai kepada 0.

Ringkasnya, sebab mengapa keputusan 8%-3 dalam PHP ialah 0 adalah disebabkan oleh kesan peraturan pemprosesan PHP dan jenis data pada nombor negatif apabila mengira operasi yang selebihnya. Pembangun perlu memberi perhatian kepada peraturan dan penukaran jenis data ini semasa menulis kod untuk mengelakkan hasil pengiraan yang tidak disengajakan dan salah.

Atas ialah kandungan terperinci Analisis sebab mengapa 8%3 sama dengan 0 dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan