ฉันต้องตัดสินใจระหว่างการแปลง parseFloat () และ Number () ก่อนที่ฉันจะทำการโทร toFixed () นี่คือตัวอย่างของการจัดรูปแบบตัวเลขสำหรับการป้อนข้อมูลผู้ใช้หลังการจับภาพ
HTML:
<input type="number" class="dec-number" min="0" step="0.01" />
จัดการเหตุการณ์:
$('.dec-number').on('change', function () {
const value = $(this).val();
$(this).val(value.toFixed(2));
});
โค้ดด้านบนจะส่งผลให้เกิดข้อยกเว้น TypeError โปรดทราบว่าแม้ว่าประเภทการป้อน html จะเป็น "หมายเลข" แต่การป้อนข้อมูลของผู้ใช้นั้นเป็นประเภทข้อมูล อย่างไรก็ตามฟังก์ชัน toFixed () อาจถูกเรียกใช้บนวัตถุที่เป็นตัวเลขเท่านั้น
รหัสสุดท้ายของฉันจะมีลักษณะดังนี้:
$('.dec-number').on('change', function () {
const value = Number($(this).val());
$(this).val(value.toFixed(2));
});
เหตุผลที่ฉันชอบโยนด้วย Number () กับ parseFloat () เป็นเพราะฉันไม่ต้องทำการตรวจสอบเพิ่มเติมไม่ว่าจะเป็นสตริงอินพุตว่างเปล่าหรือค่า NaN ฟังก์ชัน Number () จะจัดการสตริงว่างโดยอัตโนมัติและแปลงเป็นศูนย์