Sesekali saya terjumpa panggilan ke siling dan kaedah lantai, milik Matematik. Kedua-dua kaedah bertujuan untuk membundarkan nombor titik terapung kepada nombor integer. Walau bagaimanapun, soalan yang selalu datang kepada saya, hampir secara automatik, ialah:
Lagipun, adakah terdapat cara untuk membandingkan secara visual logik kedua-dua fungsi ini?
Bagus... Biar saya cuba.
Mari bayangkan terdapat graf di mana kita boleh meletakkan setiap hujah yang dihantar kepada fungsi ini:
Ia mempunyai fungsi untuk membundarkan nombor kepada nilai integer terdekat, lebih besar daripada atau sama dengan (>=) nombor semasa.
Melihat nombor yang dimasukkan dalam graf di atas, apakah integer terdekat >= kepada 1.3? Nombor 2, sudah tentu!
Melihat nombor yang dimasukkan dalam graf di atas, apakah integer terdekat >= kepada -2.001? Memandangkan kita kini berhadapan dengan skala negatif, integer seterusnya >= ialah -2.
Ia mempunyai fungsi untuk membundarkan nombor kepada nilai integer terdekat, kurang daripada atau sama (<=) dengan nombor semasa. Ringkasnya, ia berfungsi sama seperti Math.ceil, tetapi dalam arah yang bertentangan pada graf.
Melihat nombor yang dimasukkan dalam graf di atas, apakah integer terdekat <= hingga 1.3? Nombor 1, sudah tentu!
Melihat nombor yang dimasukkan dalam graf di atas, apakah integer terdekat <= kepada -2.001? Oleh kerana kita kini berhadapan dengan skala negatif, integer seterusnya <= ialah -3.
Oleh itu, menganalisis maksud pembulatan fungsi ini dan mengambil kira graf, kami mempunyai:
Mengingat konsep menggunakan imej (seperti yang dinyatakan di atas) biasanya banyak membantu saya dalam membetulkannya. ?
...
Atas ialah kandungan terperinci Math.ceil lwn Math.floor. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!