ดังที่แสดงโดยคำตอบอื่น ๆ ที่นี่มีหลายวิธีในการแปลง:
Number('123');
+'123';
parseInt('123');
parseFloat('123.45')
ฉันอยากจะพูดถึงอีกอย่างหนึ่งในparseInt
ว่า
เมื่อใช้parseInt
จะทำให้รู้สึกผ่านพารามิเตอร์ radixเสมอ 10
สำหรับการแปลงทศนิยมที่เป็น นี่เป็นค่าดีฟอลต์สำหรับพารามิเตอร์ซึ่งเป็นสาเหตุที่สามารถละเว้นได้ สำหรับไบนารีมันคือ2
และ16
สำหรับเลขฐานสิบหก ที่จริงแล้ว Radix ใด ๆ ระหว่างและรวมถึง 2 และ 36 งาน
parseInt('123') // 123 (don't do this)
parseInt('123', 10) // 123 (much better)
parseInt('1101', 2) // 13
parseInt('0xfae3', 16) // 64227
parseInt
ฟังก์ชั่น, ดี, แยกวิเคราะห์สตริงที่จะแปลงให้เป็นตัวเลข ในการประยุกต์ใช้ JS บางตัวparseInt
แยกวิเคราะห์ศูนย์นำหน้าด้วยเลขฐานแปด:
แม้ว่าท้อโดย ECMAScript 3 และห้ามโดย ECMAScript 5, การใช้งานหลายคนตีความสตริงตัวเลขเริ่มต้นด้วย 0 นำเป็นฐานแปด ต่อไปนี้อาจมีผลลัพธ์ฐานแปดหรืออาจมีผลลัพธ์ทศนิยม ระบุ radix เสมอเพื่อหลีกเลี่ยงพฤติกรรมที่ไม่น่าเชื่อถือนี้
- MDN
ความจริงที่ว่ารหัสได้ชัดเจนยิ่งขึ้นเป็นผลข้างเคียงที่ดีของการระบุพารามิเตอร์ radix
เนื่องจากparseFloat
วิเคราะห์เฉพาะตัวเลขนิพจน์ใน radix 10 จึงไม่จำเป็นต้องใช้พารามิเตอร์ radix ที่นี่
เพิ่มเติมเกี่ยวกับเรื่องนี้: