Javascript มี -0 (Negative Zero) ด้วยนะ

เนื่องจากไม่เชี่ยวชาญ Javascript ถึงจะรู้ว่ามันไม่เหมือนภาษาทั่วๆไปอยู่หลายอย่าง แต่สิ่งที่เจอมาล่าสุดมันแปลกมาก คือ สั่งให้แสดงค่าตัวเลขออกมาแล้วเจอว่ามันแสดงผลเป็น -0 เข้าใจถูกแล้วครับ มันมีเครื่องหมายลบหน้าเลขศูนย์ด้วย ซึ่งมันอาจจะแปลกๆเวลาให้คนที่มาดู ว่ามันต่างจาก 0 ธรรมดาอย่างไร

พอจะรู้อยู่บ้างว่าตัวแปรชนิด Number ใน Javascript นั้นเก็บได้ทั้งจำนวนเต็มและจำนวนแบบมีทศนิยม เหตุการณ์ที่เกิดขึ้นนี้ เกิดจากการใช้ฟังก์ชัน Math.round(ตัวเลขติดลบที่จริงๆแล้วน่าจะเป็นค่าศูนย์) เช่น Math.round(-0.0000123) เอาไปลองใน Chrome Console ดูได้เลย

พอจะต้องแก้ให้ตรวจว่าถ้าเจอ -0 ก็ต้องแสดงผลเป็น 0 จึงได้เจอหนังสือเล่มหนึ่งสรุปไว้ให้แล้วว่านี่คือกลไกใน Javascript จริงๆ!!!

Continue reading

Advertisements