JavaScript Math.Ceil Method
วิธีคณิตศาสตร์. ซีลใช้ในการปัดเศษค่าตัวเลขนั่นคือเพื่อให้ได้จำนวนเต็มที่เล็กที่สุดที่มีขนาดเล็กกว่าหรือเท่ากับค่าตัวเลข ไวยากรณ์มีดังนี้:
Math.Ceil (x)
คำอธิบายพารามิเตอร์:
| พารามิเตอร์ | อธิบาย |
|---|---|
| x | ที่จำเป็น. ต้องเป็นค่าตัวเลข |
เคล็ดลับ: วิธีนี้ตรงข้ามกับวิธีคณิตศาสตร์
ตัวอย่างเมธอด Math.Ceil
<script language = "javascript"> document.write (math.ceil (0.35) + "<br />"); document.write (math.ceil (10) + "<br />"); document.write (math.ceil (-10) + "<br />");
เรียกใช้ตัวอย่างและเอาต์พุตนี้:
1
10
-10
-10
ข้อผิดพลาดในเมธอด Math.Ceil?
ลองรันตัวอย่างต่อไปนี้:
<script language = "javascript"> document.write (math.ceil (2.1/0.7)); </script> ผลลัพธ์ของการเรียกใช้ตัวอย่างนี้คือไม่ได้รับ 3 อย่างที่เราคาดไว้ (2.1/0.7 = 3) แต่ 4. นี่เป็นสิ่งที่ตรงกันข้ามกับสามัญสำนึกของเรา มันเป็นความผิดพลาดในวิธี Math.ceil หรือไม่?
สถานการณ์ที่แท้จริงคือเมื่อทำการคำนวณ 2.1/0.7 พวกเขาจะถูกประมวลผลตามจำนวนจุดลอยตัว เนื่องจากความสัมพันธ์แบบไบนารีจึงเป็นไปไม่ได้ที่คอมพิวเตอร์จะถูกต้องอย่างสมบูรณ์สำหรับตัวเลขลอยตัว (นั่นคือพวกเขามักจะสูญเสียความคืบหน้าเล็กน้อย) ดังนั้นผลการคำนวณของ 2.1/0.7 ไม่เท่ากับ 3 แต่เกิน 3 เล็กน้อย (ประมาณ: 3.00000000000000044409) ดังนั้นหลังจากนิพจน์ถูกนำไปใช้กับ Math.ceil () ผลลัพธ์คือ 4
เกี่ยวกับปัญหาของฟังก์ชั่นเพดานที่ไม่ถูกต้องมันยังถูกกล่าวถึงในบทความ "โซลูชันสำหรับการเปรียบเทียบและการปัดเศษที่ไม่ถูกต้องของการเปรียบเทียบหมายเลขจุดลอยตัว PHP และการแก้ปัญหาที่ไม่ถูกต้อง" ซึ่งใน PHP ฟังก์ชั่นรอบ () สามารถประมวลผลได้อย่างง่ายดาย อย่างไรก็ตาม Math.round () ใน JavaScript นั้นหยาบเกินไปดังนั้นฟังก์ชั่นจะต้องเขียนแยกต่างหากเพื่อจัดการกับสถานการณ์ประเภทนี้นั่นคือค่าส่วนเกินทั้งหมดหลังจาก 1 จุดทศนิยมถูกลบออกและใช้วิธี Math.Ceil ()